Главная страница

кр гаряев. Чарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе. Книга принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании


Скачать 6.11 Mb.
НазваниеКнига принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании
Анкоркр гаряев
Дата19.10.2022
Размер6.11 Mb.
Формат файлаpdf
Имя файлаЧарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе.pdf
ТипКнига
#743064
страница17 из 28
1   ...   13   14   15   16   17   18   19   20   ...   28
метки для обозначения ячеек памяти. Эти метки — просто сло- ва или то, что их напоминает.
BEGIN: LOD A,[RESULT + 1]
ADD A,[NUM1 + 1]
STO [RESULT + 1], A

Глава 17. Автоматизация
265
LOD A,[RESULT]
ADC A,[NUM1]
STO [RESULT], A
LOD A,[NUM2 + 1]
ADD A,[NEG1]
STO [NUM2 + 1], A
JNZ BEGIN
NEG1: HLT
NUM1: 00h, A7h
NUM2: 00h, 1Ch
RESULT: 00h, 00h
Важно: метки NUM1, NUM2 и RESULT ссылаются на ячейки памяти, где хранятся два байта. В приведенных выражениях метки NUM1 + 1, NUM2 + 1 и RESULT + 1 ссылаются на второй байт соответствующей метки. Обратите внимание на метку NEG1 (negative one, то есть «минус один») у команды HLT.
Наконец, чтобы не забыть, в чем заключается смысл того или иного вы- ражения, вы можете добавить небольшие комментарии на естественном язы- ке, отделив их от кода точкой с запятой.
BEGIN: LOD A,[RESULT + 1]
ADD A,[NUM1 + 1]; Прибавить младший байт
STO [RESULT + 1], A
LOD A,[RESULT]
ADC A,[NUM1]; Прибавить старший байт
STO [RESULT], A
LOD A,[NUM2 + 1]
ADD A,[NEG1]; Уменьшить второе число на 1
STO [NUM2 + 1], A
JNZ BEGIN
NEG1: HLT

266
Код
NUM1: 00h, A7h
NUM2: 00h, 1Ch
RESULT: 00h, 00h
Продемонстрированный язык компьютерного программирования назы- вается языком ассемблера. Этот язык — некий компромисс между машинным кодом, состоящим исключительно из цифр, и многословными описаниями команд на человеческом языке, сопровождаемый адресами ячеек, выражен- ными в символьной форме. Люди иногда путают машинный код с языком ас- семблера, поскольку это просто два разных способа выражения одного и того же. Каждый оператор на языке ассемблера соответствует определенным бай- там машинного кода.
Если бы вы решили создать программу для собранного в этой главе ком- пьютера, вероятно, сначала нужно было бы записать ее на бумаге на языке ас- семблера. Когда сочтете, что программа написана правильно и готова к тес- тированию, вы вручную преобразуете каждый фрагмент кода на ассемблере в машинный код. После этого вы сможете использовать переключатели, чтобы ввести машинный код в массив RAM и запустить программу, то есть позво- лить ей выполнить набор введенных команд.
Изучение концепций компьютерного программирования предполагает знакомство с понятием ошибки. При кодировании, особенно при написании машинного кода, легко ошибиться. Ввод неправильного числа уже гарантирует возникновение неприятностей, но что произойдет, если неправильно ввести код команды? Если вы введете значение 11h (команда «Сохранить») вместо 10h
(команда «Загрузить»), то машина не только не загрузит число, которое должна, но само это число будет заменено значением, которое в настоящий момент хра- нится в аккумуляторе. Некоторые ошибки могут приводить к непредсказуемым результатам. Предположим, вы используете команду «Перейти» для перехода к ячейке, которая не содержит действительного кода команды. Или, допустим, вы случайно применили команду «Сохранить», записав число в ячейке с кодом команды. Все может случиться (и частенько случается).
Даже в моей программе для умножения есть ошибка. Если вы запустите ее дважды, то при втором выполнении машина умножит A7h на 256 и приба- вит произведение к уже полученному результату. Это связано с тем, что пос- ле первого выполнения программы в ячейке 1003h будет находиться значе- ние 0. Когда вы запустите программу во второй раз, к этому значению будет прибавлено число FFh. Значение в ячейке 1003h будет отлично от 0, поэтому программа будет продолжать работу до тех пор, пока значение в этой ячейке не станет равным 0.

Глава 17. Автоматизация
Наша машина может выполнять умножение, однако аналогичным образом она может выполнять и деление. Ранее я утверждал, что такая машина может использовать эти примитивные функции для вычисления квадратных корней, логарифмов и тригонометрических функций. Все, что ей требуется, — это обо- рудование для сложения и вычитания, а также способ реализации условного перехода для выполнения нужного кода. Любой программист скажет, что все остальное можно сделать с помощью программного обеспечения.
Разумеется, это программное обеспечение может быть довольно сложным.
Существуют целые книги с описанием алгоритмов, используемых програм- мистами для решения конкретных задач. К обсуждению этой темы мы пока не готовы. Ранее мы работали с целыми числами и не касались вопроса пред- ставления десятичных дробей в компьютере. Об этом поговорим в главе 23.
Я уже несколько раз упоминал, что все компоненты для создания таких устройств появились более ста лет назад. Однако компьютер, описанный в этой главе, вряд ли мог быть собран в то время. Многие из концепций, использо- ванных в его конструкции, не были очевидны и в середине 1930-х годов, когда разрабатывались первые релейные компьютеры. Их начали осознавать пример- но в 1945 году. До этого люди все еще пытались создавать компьютеры на ос- нове десятичных, а не двоичных чисел. Кроме того, компьютерные программы не всегда хранились в памяти — иногда они были закодированы на бумажной ленте. На заре компьютерной эры память была очень дорогой и громоздкой.
Создание массива RAM емкостью 64 килобайт из пяти миллионов телеграф- ных реле казалось такой же абсурдной идеей, как и сейчас.
Пришло время рассмотреть все, что мы узнали, в контексте истории раз- вития вычислений и вычислительной техники. Возможно, мы обнаружим, что нам не придется собирать этот сложный релейный компьютер. Как я упоми- нал в главе 12, на смену реле пришли такие электронные устройства, как ва- куумные лампы и транзисторы. Вероятно, мы также найдем, что кто-то уже создал устройство, эквивалентное нашему процессору и памяти, умещающее- ся на ладони.

268
Глава 18
От счетов к микросхемам
На протяжении всей записанной истории люди изобретали различные умные устройства и машины, стремясь хоть немного упростить процесс математичес- ких вычислений. Несмотря на то что человеческий вид, по-видимому, обла- дает врожденными способностями к вычислению, в этом нам часто требует- ся помощь. Нередко мы ставим такие сложные задачи, с которыми не можем справиться самостоятельно.
Развитие систем счисления можно считать самым ранним инструментом, помогавшим людям вести учет товаров и имущества. Представители многих культур, в том числе древние греки и американские индейцы, по-видимому, ис- пользовали для счета мелкие камешки и зерна. В Европе это привело к изоб- ретению счетных досок, на востоке — счетов.
Несмотря на то что счеты обычно ассоциируются с азиатскими культурами, они, по-видимому, были завезены торговцами в Китай примерно в 1200 году н. э.
Никто никогда по-настоящему не получал удовольствия от умножения и деления, однако мало кто предпринимал какие-либо действия для решения этой проблемы. Шотландский математик Джон Непер (1550–1617) был одним из таких людей. Он изобрел логарифмы для упрощения счетных операций.
Произведение двух чисел — это сумма их логарифмов. Так что, если нужно перемножить два числа, вы находите их в таблице логарифмов, складываете

Глава 18. От счетов к микросхемам
269
числа из таблицы, а затем ищете в таблице число, логарифм которого соот- ветствует полученной сумме. Построение таблиц логарифмов на протяжении последующих 400 лет занимало одни величайшие умы, в то время как другие разрабатывали небольшие устройства, заменяющие такие таблицы. Долгая история логарифмической линейки началась со счетной линейки, созданной
Эдмундом Гюнтером (1581–1626) и усовершенствованной Уильямом Отредом
(1574–1660). История этой линейки практически завершилась в 1976 году, ког- да компания Keuffel & Esser презентовала последнюю произведенную линейку
Смитсоновскому институту в Вашингтоне (округ Колумбия). Причиной ее за- ката послужило изобретение ручного калькулятора.
Кроме того, Непер изобрел еще одно счетное устройство для облегчения умножения, состоящее из рядов чисел, выгравированных на кости или роге, благодаря чему оно получило название «кости Непера». Самый первый меха- нический калькулятор в какой-то мере представлял автоматизированную вер- сию костей Непера, созданную примерно в 1620 году Вильгельмом Шиккар- дом (1592–1635). Другие калькуляторы, сконструированные из сцепляющихся шестеренок и рычагов, являются почти такими же старыми приспособления- ми. Среди наиболее выдающихся изобретателей механических калькуляторов можно выделить двух математиков и философов: Блеза Паскаля (1623–1662) и Готфрида Вильгельма Лейбница (1646–1716).
Наверняка вы помните, какую сложность создавал перенос бита как в пер- воначальном 8-битном сумматоре, так и в компьютере, который, помимо всего прочего, автоматизировал операцию сложения чисел, имеющих более восьми разрядов. Поначалу этот перенос кажется просто небольшим трюком, исполь- зующимся при сложении, однако в случае с сумматорами перенос бита — ос- новная проблема. Если вы разработали сумматор, который делает все, кроме переноса бита, считайте, что вы ни на шаг не приблизились к цели!
Ключевой фактор при оценке старых вычислительных машин — насколько успешно они справлялись с переносом. Например, конструкция механизма пере- носа, разработанная Паскалем, не позволяла машине производить вычитание. Для того чтобы вычесть одно число из другого, необходимо было дополнение до девяти, которое я продемонстрировал в главе 13. Эффективные механические калькуля- торы, которыми могли пользоваться люди, появились только к концу XIX века.
Одним из любопытных изобретений, которому предстояло значительно повлиять на историю вычислений, а также на текстильную промышленность, был автоматический ткацкий станок, разработанный Жозефом Жаккаром
(1752–1834). В станке Жаккара, созданном в 1804 году, для задания узора ткани использовались металлические карты с пробитыми в них отверстиями (вроде перфокарт для самоиграющих пианино). Величайшим достижением Жаккара

270
Код стал его черно-белый автопортрет в шелке, на создание которого потребова- лось около десяти тысяч карт.
В XVIII веке вычислителем назывался человек, нанятый специально для того, чтобы производить вычисления. Большим спросом пользовались табли- цы логарифмов, а таблицы тригонометрических функций широко применялись для астрономической навигации. Если вам нужно было опубликовать новый набор таблиц, приходилось нанимать многочисленных «компьютеров», орга- низовывать их работу, а затем систематизировать полученные данные. Разу- меется, ошибки могли возникнуть на любой стадии, начиная от расчетов и за- канчивая подготовкой к печати.
Стремлением избавить математические таблицы от ошибок руководство- вался в своей работе Чарльз Бэббидж (1791–1871), британский математик и эко- номист, практически современник Сэмюэла Морзе.
В то время математические таблицы (например, логарифмов) создавались не путем вычисления фактического логарифма для каждой записи. Это заняло бы слишком много времени. Вместо этого логарифмы вычислялись для избранных чисел, а логарифмы остальных чисел можно было найти довольно просто — пу- тем интерполяции с использованием так называемых разностей.
В начале 1820-х годов Бэббидж считал, что он в состоянии разработать и сконструировать машину для автоматизации процесса составления таблицы, вплоть до подготовки к печати. Это устранило бы ошибки. Он придумал «раз- ностную машину», которая по сути была большим механическим сумматором.
Многоразрядные десятичные числа представлялись с помощью зубчатых ко- лес, каждое из которых могло находиться в любом из десяти положений. От- рицательные числа обрабатывались с использованием дополнений до десяти.
Несмотря на то что ранние модели доказали работоспособность конструкции
Бэббиджа, разностная машина так никогда и не была завершена, поскольку со- здавалась на гранты британского правительства, которых, разумеется, никогда не хватало. В 1833 году Бэббидж прекратил работу над ней.
Однако к этому времени у Бэббиджа возникла лучшая идея. Она заключалась в создании так называемой аналитической машины, разработка конструкции ко- торой занимала ученого до самой смерти, причем ему удалось фактически собрать несколько небольших моделей и частей этого механизма *.
* В результате британское правительство, щедро выдававшее Бэббиджу гранты и выстроившее для работ и размещения машины целое здание, так и не получило ни разностную машину, ни аналитическую в тридцатых годах XIX века… не получило оно ни одной машины и в пятидесятых. В июне 1952 года министр финансов Бенджамин Дизраэли принял финальное и безапелляционное решение о прекращении, а точнее, об отказе в возобновлении финансирования работ Бэббиджа. Прим. науч. ред.

Глава 18. От счетов к микросхемам
271
Аналитическая машина — устройство, наиболее приближенное к ком- пьютеру из всего, что было создано в XIX веке. Конструкция Бэббиджа пред- усматривала хранилище (концептуально напоминающее память компьютера) и мельницу (устройство для выполнения арифметических операций). Умно- жение можно было производить путем многократного сложения, а деление — путем многократного вычитания.
Самое интересное заключается в том, что аналитическую машину мож- но было запрограммировать с помощью карт наподобие тех, что использова- лись в ткацком станке Жаккара. Как выразилась Августа Ада Байрон, графи- ня Лавлейс (1815–1852), в примечаниях к своему переводу статьи, написанной итальянским математиком об аналитической машине Бэббиджа: «Можно ска- зать, что аналитическая машина плетет алгебраические узоры подобно тому, как ткацкий станок Жаккара плетет цветы и листья».
Бэббидж, кажется, был первым, кто осознал важность условных перехо- дов в компьютерах. Снова приведем слова Ады Байрон: «Таким образом, цикл операций следует понимать как любой набор операций, выполняемый более
одного раза. Цикл является циклом вне зависимости от того, повторяется он
дважды или неопределенное число раз, поскольку именно факт повторения делает цикл тем, чем он является. Во многих анализируемых случаях существу- ют рекуррентные группы, состоящие из одного или нескольких циклов, то есть
цикл цикла или цикл циклов».
Несмотря на то что разностная машина в конечном итоге была сконструи- рована Георгом Шютцем и его сыном Эдвардом в 1853 году, машины Бэббиджа оставались забытыми, о них вспомнили только в 1930-х, когда люди начали исследовать основы информатики. К тому времени все, чего достиг Бэббидж, уже было превзойдено более поздними технологиями, и он мало что мог пред- ложить компьютерному инженеру XX века, кроме значительно опережающего свое время предвидения автоматизации.
Еще одним толчком для развития информатики послужила Конституция
Соединенных Штатов Америки. Помимо всего прочего, в ней содержится при- зыв к проведению переписи населения каждые десять лет. При проведении пе- реписи 1880 года собиралась информация о возрасте, поле и национальности.
На анализ данных ушло около семи лет.
Опасаясь того, что анализ переписи 1890 года займет больше десятилетия,
Бюро переписи населения изучило возможность ее автоматизации и выбрало механизм, придуманный Германом Холлеритом (1860–1929), который работал в качестве статистика в 1880 году.
Холлерит планировал использовать картонные перфокарты размером
168,278 × 82,551 мм. Маловероятно, что Холлерит знал о том, как Чарльз Бэббидж

272
Код использовал карты для программирования своей аналитической машины, од- нако он почти наверняка был знаком с использованием карточек в ткацком станке Жаккара. Отверстия в этих карточках были организованы в 24 столбца по 12 позиций, что в общей сложности давало 288 позиций. Эти позиции со- ответствовали определенным характеристикам человека, участвующего в пе- реписи. Переписчик указывал эти особенности, пробивая прямоугольные от- верстия размером в четверть дюйма в соответствующем месте карты.
Читая книгу, вероятно, вы настолько привыкли мыслить в терминах дво- ичных кодов, что могли предположить, что карта с 288 возможными отверс- тиями способна хранить 288 бит информации. Однако эти карты использова- лись не так.
Например, перфокарта, применяемая при переписи в чисто двоичной си- стеме, имела бы одну позицию для пола. Она была бы либо пробита — в слу- чае, если опрашиваемый — мужчина, либо не пробита — в случае, если это женщина (или наоборот). Однако карты Холлерита предусматривали две по- зиции для пола: одна пробивалась для мужчин, другая — для женщин. Ана- логичным образом переписчик указывал возраст субъекта, пробивая два от- верстия. Первое обозначало пятилетний диапазон: от 0 до 4, от 5 до 9, от 10 до 14 и т. д. Второе отверстие пробивалось в одной из пяти позиций для обо- значения точного возраста в этом диапазоне. Для кодирования возраста тре- бовались в общей сложности 28 позиций на карте. При использовании дво- ичной системы нужны были бы всего семь позиций для кодирования любого возраста от 0 до 127 лет.
Мы должны простить Холлерита за то, что он не внедрил двоичную си- стему для записи информации, собранной при переписи населения. Преоб- разование возраста в двоичные числа было непосильной задачей для тех, кто проводил перепись 1890 года. Кроме того, существует практическая причина, по которой использование перфокарт не может быть полностью основанным на двоичной системе. Двоичная система предполагает вероятность того, что будут пробиты все (или почти все) отверстия, что сделает карту чрезвычай- но хрупкой.
Данные переписи собираются так, чтобы их можно было подсчитать, то есть обобщают в таблицы. Разумеется, вы хотите знать, сколько людей живет в том или ином районе, однако также интересно получить сведения о распределении населения по возрасту. Для этого Холлерит сконструировал табулятор — ма- шину, в которой ручное управление сочеталось с автоматизацией. Оператор прижимал к каждой перфокарте пресс с 288 подпружиненными штырями.
В тех местах карточки, где были пробиты отверстия, эти штыри погружа- лись в резервуар с ртутью, что приводило к замыканию электрической цепи,

Глава 18. От счетов к микросхемам
273
активировавшей электромагнит, который затем увеличивал на единицу значе- ние десятичного счетчика.
Холлерит использовал электромагниты и в машине для сортировки пер- фокарт. Например, вам может понадобиться собрать отдельную возрастную статистику по каждой профессии. Сначала нужно сортировать карты по про- фессиям, затем отдельно для каждой из них собрать данные по возрастам.
Сортировочная машина использовала тот же ручной пресс, что и табулятор, однако сортировщик применял электромагниты для того, чтобы открывать задвижки одного из 26 отделений. В это отделение оператор опускал карту и вручную закрывал задвижку.
Этот эксперимент по автоматизации переписи 1890 года оказался чрезвы- чайно успешным. В общей сложности было обработано более 62 миллионов карточек. Они содержали в два раза больше данных по сравнению с тем, что удалось собрать в ходе переписи 1880 года, а обработаны эти сведения были примерно в три раза быстрее. Холлерит и его изобретения стали известны во всем мире. В 1895 году он даже отправился в Москву и успешно продал свое оборудование для первой российской переписи 1897 года.
Герман Холлерит положил начало длинной последовательности событий.
В 1896 году он основал компанию Tabulating Machine Company, занимающую- ся сдачей в аренду и продажей оборудования для работы с перфокартами.
К 1911 году в результате пары слияний она превратилась в Computing-Tabulating-
Recording Company, или C-T-R. В 1915 году ее президентом стал Томас Джон
Уотсон (1874–1956), который в 1924 году поменял название на International
Business Machines Corporation, или IBM.
К 1928 году оригинальные карты, использовавшиеся в переписи 1890 года, превратились в знаменитые перфокарты IBM с 80 столбцами и 12 строками.
Они продолжали активно использоваться на протяжении более 50 лет, и даже в последующие годы их иногда называли картами Холлерита. Об эволюции этих карт расскажу подробнее в главах 20, 21 и 24.
Прежде чем перенестись в двадцатое столетие, давайте убедимся, что у нас сложилось правильное представление об этой эпохе. По очевидным причинам в данной книге я уделял пристальное внимание изобретениям, которые явля- ются цифровыми по своей природе. К ним относятся телеграф, азбука Брайля, машины Бэббиджа и карты Холлерита. При работе с цифровыми концепция- ми и устройствами вы легко можете подумать, что цифровым является весь мир. Однако открытия и изобретения XIX века были явно не цифровыми. Дей- ствительно, очень малая часть природного мира, который мы воспринимаем с помощью органов чувств, цифровая. Скорее, мир — это континуум, который нелегко представить с помощью чисел.

274
Код
Несмотря на то что Холлерит использовал реле в своих карточных табу- ляторах и сортировщиках, компьютеры, созданные на основе реле, которые впоследствии стали называться электромеханическими, появились только в се- редине 1930-х годов. В этих машинах обычно использовались не телеграфные реле, а реле, разработанные для маршрутизации телефонных вызовов.
Эти первые релейные компьютеры не были похожи на то, что мы собирали в предыдущей главе (их конструкция основана на микропроцессорах, создан- ных в 1970-х). Сегодня для нас очевидно, что компьютеры должны использо- вать двоичные числа, однако так было не всегда.
Другое отличие нашего релейного компьютера от первых настоящих ма- шин в том, что никто в 1930-х годах не был настолько сумасшедшим, чтобы собрать из реле память объемом 524 288 бит! Стоимость и требования к про- странству и мощности делали невозможным создание такой памяти. Скудный объем доступной памяти использовался исключительно для хранения проме- жуточных результатов. Сами программы находились на физическом носите- ле, например на бумажной ленте с перфорацией. Действительно, наш процесс ввода кода и данных в память — более современная концепция.
Хронологически первый релейный компьютер, по-видимому, сконструи- ровал Конрад Цузе (1910–1995), который в 1935 году, будучи студентом- инженером, начал собирать машину в квартире своих родителей в Берлине. Эта машина использовала двоичные числа, но в ее ранних версиях применялась механическая память, а не реле. Для программирования своих компьютеров
Цузе пробивал отверстия в старой 35-миллиметровой кинопленке.
В 1937 году Джордж Стибиц (1904–1995) из Bell Telephone Laboratories принес домой пару телефонных реле и собрал на своем кухонном столе од- нобитный сумматор, который его жена позднее назвала «К-машиной» («К» — значит «кухня»). Этот эксперимент лег в основу компьютера Complex Number
Computer, созданного в Bell Labs в 1939 году.
Между тем студент выпускного курса Гарварда Эйкен (1900–1973) искал способ выполнения множества однообразных вычислений, что привело к со- трудничеству Гарварда и IBM, в результате которого был создан автоматический вычислитель, управляемый последовательностями, впоследствии получивший имя «Марк I». Работа над этим устройством была завершена в 1943 году. Этот первый цифровой компьютер, способный печатать таблицы, наконец реализовал мечту Чарльза Бэббиджа. Компьютер «Марк II» был самой крупной релейной машиной, использующей 13 тысяч реле. В Гарвардской вычислительной лабо- ратории, возглавляемой Эйкеном, впервые был прочитан курс информатики.
Реле подходили для создания компьютеров, но были неидеальны. Поскольку они были механическими, их работа основывалась на изгибании металлической

Глава 18. От счетов к микросхемам
275
пластины. После продолжительной работы реле могли сломаться, а также вый- ти из строя из-за частичек грязи или бумаги, застрявших между контактами.
Известен случай, когда в 1947 году из реле компьютера «Марк II» в Гарварде была извлечена мошка. Грейс Хоппер (1906–1992), сотрудничавшая с Эйке- ном с 1944 года, а позднее ставшая известным специалистом в области язы- ков программирования, приклеила эту мошку в журнал с пометкой: «Первый отловленный баг».
Возможная замена для реле — вакуумная лампа, разработанная Джоном
Флемингом (1849–1945) и Ли де Форестом (1873–1961) для радио. К началу
1940-х годов вакуумные лампы повсеместно использовались для усиления те- лефонных сигналов. Практически в каждом доме был радиоприемник, напол- ненный светящимися трубками, которые усиливали радиосигналы, обеспечи- вая их слышимость. Как и в случае с реле, из вакуумных ламп можно собрать вентили И, ИЛИ, И-НЕ и ИЛИ-НЕ.
Не важно, из чего собраны вентили — из реле или из вакуумных ламп.
Вентили всегда можно объединить в сумматоры, селекторы, дешифраторы, триггеры и счетчики. Все, что я говорил о компонентах на основе реле в пред- шествующих главах, остается в силе при замене реле вакуумными лампами.
Тем не менее у вакуумных ламп наблюдались свои недостатки: они были дорогими, потребляли много электричества и выделяли много тепла. Самая большая проблема заключалась в том, что лампы в итоге перегорали. Это был факт, с которым людям приходилось мириться. Владельцы ламповых радио- приемников привыкли к необходимости периодически заменять в них лампы.
Телефонная система была спроектирована с избыточной надежностью, по- этому периодически перегорающие лампы не представляли большой пробле- мы (в любом случае никто не ожидает от телефонной системы безупречной работы). А вот если лампа перегорает в компьютере, это можно обнаружить не сразу. Кроме того, в компьютере используется так много вакуумных ламп, что они могут перегорать в среднем каждые несколько минут.
Большое преимущество использования вакуумных ламп по сравнению с реле в том, что лампы могут переключаться из одного состояния в другое примерно за одну миллионную долю секунды — за одну микросекунду. Ваку- умная лампа изменяет состояние (включается или выключается) в тысячу раз быстрее, чем реле, которое переключается из одного состоянии в другое в лучшем случае примерно за одну миллисекунду, то есть тысячную долю се- кунды. Интересно отметить, что скорость не представляла серьезной пробле- мы на ранних этапах развития компьютерной индустрии, поскольку общая скорость вычислений была связана со скоростью, с которой машина счи- тывала программу с бумажной или пластиковой ленты. Пока компьютеры

276
Код работали на этом принципе, преимущество вакуумных ламп по сравнению с реле не имело значения.
Начиная с 1940-х годов вакуумные лампы стали вытеснять реле в конструк- ции новых компьютеров. К 1945 году реле совсем перестали использоваться.
В то время как релейные машины назывались электромеханическими компью- терами, вакуумные лампы стали основой для первых электронных компьютеров.
В 1943 году в Великобритании начал работать компьютер «Колосс», ис- пользовавшийся для расшифровки сообщений, созданных с помощью немецкой шифровальной машины «Энигма». Над этим проектом (и некоторыми более поздними британскими компьютерами) среди прочих работал Алан Тьюринг
(1912–1954), который в наши дни известен двумя статьями. В первой, опуб- ликованной в 1937 году, он ввел понятие «вычислимость» — анализ того, что могут и чего не могут сделать компьютеры. Он также разработал абстрактную модель компьютера, которая теперь известна под названием машины Тьюринга.
Вторая известная статья была посвящена искусственному интеллекту. Автор представил тест для машинного интеллекта — тест Тьюринга.
В Электротехнической школе Мура при Пенсильванском университете
Джон Эккерт (1919–1995) и Джон Моучли (1907–1980) разработали компьютер
ENIAC (Electronic Numerical Integrator and Computer, электронный числовой интегратор и вычислитель). В нем использовались 18 тысяч вакуумных ламп, и компьютер был закончен в конце 1945 года. ENIAC, вес которого состав- лял около 30 тонн, можно считать самым большим компьютером в истории.
К 1977 году в продаже уже были гораздо более быстрые компьютеры. Однако
Эккерт и Моучли не смогли запатентовать машину из-за заявки их конкурен- та Джона Атанасова (1903–1995), собравшего электронный компьютер раньше, который, однако, так никогда и не заработал.
Компьютер ENIAC привлек внимание математика Джона фон Неймана
(1903–1957). Родившийся в Венгрии, фон Нейман проживал в Соединенных
Штатах с 1930 года. Выдающийся человек, известный своей способностью вы- полнять в уме сложнейшие арифметические операции, фон Нейман был про- фессором математики в Принстонском институте перспективных исследований и изучал все — от квантовой механики до применения теории игр в экономике.
Джон фон Нейман помог разработать компьютер EDVAC (Electronic Discrete
Variable Automatic Computer, электронный автоматический вычислитель с дис- кретными переменными), являвшийся усовершенствованной версией компью- тера ENIAC. В статье * 1946 года «Предварительное обсуждение логической
* Работы фон Неймана публиковались в том числе и в СССР, например см.: Нейман Дж.
Вычислительная машина и мозг // Кибернетический сборник № 1: сборник переводов. М.:
Издательство иностранной литературы, 1960. Прим. науч. ред.

Глава 18. От счетов к микросхемам
277
конструкции электронной вычислительной машины», написанной в соавтор- стве с Артуром Берксом и Германом Голдстайном, он описал несколько особен- ностей компьютера, благодаря которым машина EDVAC значительно превосхо- дила ENIAC. Разработчики EDVAC решили, что компьютер должен использовать двоичную систему счисления. В машине ENIAC использовалась десятичная. Кро- ме того, компьютер должен обладать максимально возможным объемом памяти, и эта память должна хранить и программный код, и данные, получаемые в про- цессе работы. С компьютером ENIAC дело обстояло не так. Программирование
ENIAC осуществлялось с помощью переключателей и соединения кабелей. Эти инструкции должны были храниться в памяти последовательно и адресоваться с помощью счетчика команд, при этом допускались условные переходы. Такой принцип стал известен как концепция запоминаемой программы.
Эти принципы были таким важным шагом в развитии информатики, что сегодня мы говорим о них как об архитектуре фон Неймана. Компьютер, кото- рый мы собрали в предыдущей главе, представляет собой классическую машину фон Неймана. Однако у архитектуры фон Неймана есть узкое место. Машина фон Неймана обычно тратит значительное время на извлечение инструкций из памяти при подготовке к их выполнению. Напомним, что окончательная конструкция компьютера из главы 17 предполагала, что при работе с той или иной инструкцией три четверти времени затрачивается на ее извлечение.
Во времена компьютера EDVAC было нецелесообразно создавать из ваку- умных ламп память большого объема. Вместо этого было предложено несколь- ко весьма странных решений. Среди успешных было использование памяти
с ртутной линией задержки, в которой применялись пятифутовые трубки с рту- тью. С одного конца трубки с интервалом около одной микросекунды в ртуть по- сылались слабые импульсы. За одну миллисекунду они достигали другого конца трубки, где детектировались как звуковые волны и отправлялись обратно. Таким образом, каждая трубка с ртутью могла хранить около 1024 бит информации.
Только в середине 1950-х годов была разработана память, состоявшая из боль- ших массивов маленьких намагниченных металлических колец, через которые проходили провода. Каждое такое кольцо могло хранить один бит информации.
Джон фон Нейман был не единственным человеком, который размышлял о природе компьютеров в 1940-х годах.
Клод Шеннон также был влиятельным мыслителем. В главе 11 я обсуждал его магистерскую диссертацию 1938 года, в которой была установлена взаимо- связь между переключателями, реле и булевой алгеброй. В 1948 году, работая в Bell
Telephone Laboratories, он опубликовал в Bell System Technical Journal статью «Мате- матическая теория связи», где не только впервые употребил в печати слово «бит», но и заложил основы раздела науки, известной сегодня как теория информации.

278
Код
Теория информации изучает возможность передачи цифровой информа- ции при наличии шума (который обычно препятствует передаче всей инфор- мации), а также способы его компенсации. В 1949 году Шеннон написал первую статью о программировании компьютера для игры в шахматы, а в 1952 году разработал механическую мышь, управляемую реле, которая могла находить выход из лабиринта. Помимо всего прочего, в Bell Labs Шеннон был хорошо известен еще и своим умением ездить на одноколесном велосипеде, при этом жонглируя.
Норберт Винер (1894–1964), который в возрасте 18 лет в Гарварде получил степень доктора философии по математике, наиболее известен благодаря своей книге «Кибернетика, или Управление и связь в животном и машине» (1948).
Винер придумал название «кибернетика» (от греческого «кормчий») для тео- рии о взаимосвязи биологических процессов в людях и животных с механикой компьютеров и роботов. В поп-культуре вездесущая приставка «кибер-» теперь обозначает все, что имеет отношение к компьютерам. В частности, миллионы связанных через интернет компьютеров называются киберпространством. Это слово было придумано писателем Уильямом Гибсоном и появилось в романе
1984 года «Нейромант», написанном в жанре киберпанка.
В 1948 году компания Eckert-Mauchly Computer Corporation (позднее во- шедшая в Remington Rand) начала работу над тем, чему предстояло стать пер- вым доступным широкой аудитории компьютером, — UNIVAC (Universal Auto- matic Computer, универсальный автоматический компьютер). Он был закончен в 1951 году, а первый экземпляр был доставлен в Бюро переписи населения.
Компьютер UNIVAC дебютировал в эфире канала CBS, где использовался для прогнозирования результатов президентских выборов 1952 года. Уолтер Крон- кайт называл его электронным мозгом. В 1952 году компания IBM объявила о выпуске первой коммерческой компьютерной системы — 701.
Так началась долгая история использования компьютеров корпорациями и правительством. Какой бы интересной ни была эта история, сейчас мы перей- дем к обсуждению другой тенденции, зародившейся в 1947 году, которая по- зволила уменьшить стоимость и размер компьютеров, превратив их в бытовую технику. Этот прорыв в области электроники едва не остался незамеченным.
Корпорация Bell Telephone Laboratories на протяжении многих лет была местом, где умные люди имели возможность работать практически над любым интересовавшим их проектом. К счастью, некоторые из них увлекались компью- терами. Я уже упоминал Джорджа Стибица и Клода Шеннона, которые внесли значительный вклад в развитие вычислительной техники, работая в Bell Labs.
Позднее, в 1970-х годах, в Bell Labs была разработана компьютерная операци- онная система Unix и язык программирования C, о которых расскажу позднее.

Глава 18. От счетов к микросхемам
279
Корпорация Bell Labs возникла 1 января 1925 года, когда компания American
Telephone and Telegraph официально отделила свои научные и технические ис- следовательские подразделения от остальной части бизнеса, создав дочернее предприятие. Основная цель Bell Labs заключалась в разработке технологий для улучшения работы телефонной системы. К счастью, это поручение было до- статочно туманным и предполагало всевозможные направления исследований, в том числе очевидную и не теряющую своей актуальности задачу, связанную с усилением передаваемого по проводам звукового сигнала без его искажения.
Начиная с 1912 года компания Bell System работала над ламповыми уси- лителями. Значительная часть исследований и разработок была направлена на усовершенствование вакуумных ламп с целью их использования в телефон- ной системе. Несмотря на проделанную работу, вакуумные лампы по-прежнему оставляли желать лучшего. Они были большими, потребляли много электро- энергии и со временем перегорали. Однако у них не было альтернативы.
Все изменилось 16 декабря 1947 года, когда два физика из Bell Labs, Джон
Бардин (1908–1991) и Уолтер Браттейн (1902–1987), собрали усилитель другого типа из германиевой пластины — элемента, известного как полупроводник, — и полоски золотой фольги. Через неделю они продемонстрировали усили- тель своему шефу Уильяму Шокли (1910–1989). Это был первый транзистор, устройство, которое некоторые считают самым важным изобретением XX века.
Транзистор появился не на пустом месте. За восемь лет до этого, 29 декаб- ря 1939 года, Шокли написал в своей записной книжке: «Сегодня мне пришло в голову, что в принципе можно создать усилитель, использующий вместо ва- куумных ламп полупроводники». После демонстрации первого транзистора много лет ушло на его доработку. Только в 1956 году Шокли, Бардин и Брат- тейн получили Нобелевскую премию по физике «за исследования полупровод- ников и открытие транзисторного эффекта».
Как вы помните, электроны в атоме распределены по оболочкам, окру- жающим ядро. Медь, золото и серебро характеризуются наличием только од- ного электрона на внешней оболочке их атомов. Этот электрон легко может оторваться от остальной части атома и двигаться, создавая электрический ток.
Противоположностью проводников являются изоляторы, например резина и пластик, которые практически не проводят электричество.
Германий и кремний (а также некоторые соединения) называются полу-
проводниками не потому, что они проводят электричество в два раза хуже, чем проводники, а потому, что их проводимостью можно управлять различными способами. Полупроводники имеют четыре электрона на внешней оболочке атома, что составляет половину от их максимально возможного количества.
В чистом полупроводнике атомы образуют очень устойчивые связи, создавая

280
Код кристаллическую решетку, подобную кристаллической решетке алмаза. Такие полупроводники проводят электричество не очень хорошо.
Однако полупроводники можно легировать, то есть добавить в них не- которые примеси. Один тип примесей добавляет дополнительные электроны к тем, которые необходимы для создания связи между атомами. Они называ- ются полупроводниками n-типа (n — от английского negative — «отрицатель- ный»). В результате добавления другого типа примесей получается полупро-
водник p-типа (p — от positive — «положительный»).
Чтобы создать усилитель из полупроводников, нужно между двумя слоя- ми полупроводника n-типа расположить прослойку из полупроводника p-типа.
Получившееся устройство называется NPN-транзистором, а тремя его состав- ными частями являются коллектор, база и эмиттер.
На рисунке приведено схематическое изображение NPN-транзистора.
База
Коллектор
Эмиттер
Небольшое напряжение на базе управляет гораздо большим то- ком, проходящим от коллектора к эмиттеру. При отсутствии напря- жения на базе транзистор закрывается.
Как правило, транзисторы имеют вид небольших металлических цилиндров диаметром примерно 6,4 миллиметра с тремя проводами.
Разработка транзистора ознаменовала начало эры твердотельной элек- троники, которая называется так потому, что транзисторы не требуют ис- пользования вакуумных ламп и создаются из твердых веществ, в частности из полупроводников, чаще всего из кремния (в наши дни). Помимо того, что по сравнению с вакуумными лампами транзисторы имеют куда меньшие раз- меры, они потребляют гораздо меньше электроэнергии, генерируют меньше тепла и дольше служат. Носить в кармане ламповый радиоприемник было невозможно. Транзисторный радиоприемник может питаться от небольшой батарейки и, в отличие от лампового, не нагревается. Ношение транзистор- ного радиоприемника в кармане стало возможным для некоторых счаст- ливчиков, распаковавших подарки в рождественское утро 1954 года. В этих первых карманных радиоприемниках использовались транзисторы, выпу- щенные компанией Texas Instruments, сыгравшей важную роль в полупро- водниковой революции.

Глава 18. От счетов к микросхемам
281
Однако первым коммерческим применением транзисторов было их исполь- зование в слуховых аппаратах. В память о многолетней работе Александ ра Белла с глухими людьми корпорация AT&T разрешила изготовителям слуховых аппа- ратов применять транзисторные технологии, не платя за использование патентов.
Первый транзисторный телевизор был выпущен в 1960 году, и сегодня ламповых приборов практически не найти. (Хотя некоторые меломаны и электрогитаристы по-прежнему предпочитают ламповые усилители их транзисторным аналогам.)
В 1956 году Шокли покинул Bell Labs, чтобы основать компанию Shockley
Semiconductor Laboratories. Он переехал в Пало-Альто (Калифорния), где вы- рос. Его компания стала первым местным предприятием, работающим в дан- ном направлении. Со временем в этой местности появились другие полупро- водниковые и компьютерные компании, а область к югу от Сан-Франциско теперь неофициально называется Кремниевой долиной.
Вакуумные лампы изначально разрабатывались для применения в усили- телях, однако их также можно было использовать в качестве переключателей в логических вентилях. То же самое касается транзистора. На следующем ри- сунке изображен вентиль И на основе транзисторов, структура которого на- поминает версию с реле. Только когда входы A и B равны логической единице, то есть на базу подается положительное напряжение, оба транзистора проводят ток, а выход равен 1. Резистор при этом предотвращает короткое замыкание.
Соединив два транзистора так, как показано на схеме справа, вы получите вентиль ИЛИ. В вентиле И эмиттер верхнего транзистора соединен с коллек- тором нижнего. В вентиле ИЛИ коллекторы обоих транзисторов подключены к источнику питания. Эмиттеры соединены между собой.
Вход А
Выход
Вход В
V
Вентиль И
Вход А
Выход
Вход В
V
V
Вентиль ИЛИ

282
Код
Как видите, все, что мы узнали о создании логических вентилей и других компонентов из реле, справедливо и для транзисторов. Реле, лампы и транзис- торы изначально разрабатывались в основном для усилителей, однако из них можно собрать логические вентили для компьютеров. Первые транзисторные компьютеры были созданы в 1956 году, и спустя несколько лет лампы пере- стали применяться.
Транзисторы, безусловно, делают компьютеры более надежными, компакт- ными и экономичными. Но облегчают ли они процесс сборки?
На самом деле нет. Разумеется, транзистор позволяет уместить больше логических вентилей в меньшем пространстве, однако вам по-прежнему при- дется беспокоиться о соединении всех этих компонентов. Соединить транзис- торы в логические вентили так же сложно, как реле и вакуумные лампы. Этот процесс усложняется еще и меньшим размером, а также тем, что транзисторы труднее держать. Если бы вы решили собрать компьютер, описанный в гла- ве 17, и массив RAM емкостью 64 килобайт из транзисторов, то бóльшая часть времени на этапе проектирования была бы потрачена на разработку некой структуры, где бы крепились все компоненты. Основной физический труд сво- дился бы к утомительному соединению миллионов транзисторов.
Как мы уже выяснили, существуют определенные комбинации часто встре- чающихся транзисторов. Пары транзисторов почти всегда соединены в венти- ли. Из вентилей часто собираются триггеры, сумматоры, селекторы или деши- фраторы. Триггеры объединяются в многобитные защелки или массивы RAM.
Собрать компьютер было бы проще, если бы транзисторы были предваритель- но объединены в распространенные конфигурации.
Эту идею, по-видимому, впервые предложил британский физик Джефф- ри Даммер, который в ходе выступления в мае 1952 года сказал: «Я хотел бы заглянуть в будущее. С появлением транзистора и работ по полупроводникам в целом сегодня, по-видимому, можно ставить вопрос о создании электронного оборудования в виде твердого блока без каких-либо соединительных прово- дов. Этот блок может состоять из слоев изолирующих, проводящих, преобра- зующих сигнал из переменного в постоянный и усиливающих сигнал материа- лов. Задание электронных функций компонентов и их соединение должным образом может быть выполнено путем вырезания участков отдельных слоев».
Однако на создание работающего продукта ушло еще несколько лет.
Ничего не зная о прогнозе Даммера, в июле 1958 года Джек Килби из ком- пании Texas Instruments подумал, что на одном кристалле кремния можно объ- единить несколько транзисторов, а также резисторы и другие электрические компоненты. Шесть месяцев спустя, в январе 1959 года, практически та же идея возникла у Роберта Нойса (1927–1990). Сначала Нойс работал в компании

Глава 18. От счетов к микросхемам
283
Shockley Semiconductor Laboratories, но в 1957 году он и еще семеро ученых покинули ее, чтобы основать корпорацию Fairchild Semiconductor Corporation.
В сфере технологий одновременное изобретение — довольно распространен- ное явление. Несмотря на то что Килби изобрел свое устройство за шесть меся- цев до Нойса, а компания Texas Instruments подала заявку на патент раньше, чем
Fairchild Semiconductor, Нойс получил патент первым. Последовавшие за этим су- дебные тяжбы завершились с устраивающим всех результатом только спустя десять лет. Несмотря на то что Килби и Нойс никогда не работали вместе, сегодня они считаются соавторами интегральной микросхемы (ИС), обычно называемой чипом.
Создание интегральных схем — сложный процесс, который предполагает наслаивание тонких пленок легированного кремния, протравленных в разных местах для образования микроскопических компонентов. Несмотря на то что разработка новой интегральной микросхемы предполагает большие затраты, массовое производство позволяет снизить цены: чем больше производится микросхем, тем дешевле они становятся.
Кремниевый чип очень тонкий и хрупкий, поэтому он должен быть надежно защищен корпусом, позволяю- щим в то же время соединить его компоненты с другими чипами. Чаще всего интегральные микросхемы помещают- ся в прямоугольный пластиковый корпус DIP (dual inline package, корпус с двухрядным расположением штырько- вых выводов) с 14, 16 или даже 40 выводами.
Вот чип с 16 выводами. Если вы возьмете его так, чтобы небольшая выем- ка находилась слева (как показано на рисунке), то выводы будут нумеровать- ся с 1 по 16 против часовой стрелки, начиная с вывода в левом нижнем углу и заканчивая выводом в левом верхнем углу. Штырьки расположены на рас- стоянии 2,5 миллиметра друг от друга.
На протяжении 1960-х годов рынок интегральных микросхем развивал- ся благодаря космической программе и гонке вооружений. Первым массовым коммерчес ким продуктом, включавшим интегральную микросхему, был слу- ховой аппарат, распространявшийся компанией Zenith в 1964 году. В 1971 году компания Texas Instruments начала продавать первый карманный калькулятор, а компания Pulsar — первые цифровые часы. (Очевидно, в цифровых часах кор- пус ИС отличается от того, что мы обсуждали в вышеприведенном примере.)
Вслед за ними появилось множество других товаров, в конструкцию которых входили интегральные микросхемы.
В 1965 году Гордон Мур (в то время сотрудник компании Fairchild Semi- conductor, а позднее соучредитель корпорации Intel) заметил, что технология развивается так, что начиная с 1959 года количество транзисторов, которые

284
Код могут уместиться в одной микросхеме, ежегодно удваивается, и предсказал со- хранение этой тенденции. Фактически такая технология развивалась немно- го медленнее, поэтому закон Мура (как он стал в конечном счете называть- ся) был скорректирован и прогнозировал удвоение количества транзисторов в микросхеме каждые 18 месяцев. Это по-прежнему удивительно быстрое раз- витие, и закон Мура объясняет, почему домашние компьютеры устаревают всего за несколько лет.
На начальных этапах развития технологии о микросхемах, включающих в себя менее десяти логических вентилей, говорили как о схемах с малым уров-
нем интеграции. Схемы со средним уровнем интеграции (средние интегральные схемы, СИС) включали в себя от 10 до 100 вентилей, а схемы с высоким уров-
нем интеграции (большие интегральные схемы, БИС) — от 100 до 5000 вен- тилей. Затем были введены такие понятия, как сверхвысокий уровень интегра-
ции (сверхбольшая интегральная схема, СБИС) — от 5 до 50 тысяч вентилей,
суперсверхвысокий уровень интеграции — от 50 до 100 тысяч вентилей и уль-
травысокий уровень интеграции — более 100 тысяч вентилей.
Оставшуюся часть этой главы и всю следующую я предлагаю провести в середине 1970-х, в той древней эпохе, когда никто еще не слышал о фильме
«Звездные войны», а схемы СБИС еще только маячили на горизонте. В то время для изготовления компонентов интегральных схем использовалось несколько различных технологий, каждая из которых определяет семейство ИС. К сере- дине 1970-х годов преобладали семейства ТТЛ и КМОП.
Аббревиатура ТТЛ расшифровывается как транзисторно-транзистор-
ная логика. Если бы в середине 1970-х вы работали инженером-разработчиком цифровых ИС (собирали из ИС более крупные схемы), то вашей настольной книгой был бы справочник по ТТЛ-микросхемам The TTL Data Book for Design
Engineers, впервые опубликованный в 1973 году компанией Texas Instruments.
Он содержал подробное описание интегральных микросхем ТТЛ серии 7400, продаваемых Texas Instruments и некоторыми другими компаниями, называе- мых так потому, что номер каждой ИС в этом семействе начинался с 74.
Каждая интегральная схема серии 7400 состоит из логических вентилей, сконфигурированных определенным образом. Некоторые микросхемы — прос- тые логические вентили, из которых можно создать более крупные компоненты; другие — готовые компоненты: триггеры, сумматоры, селекторы и дешифраторы.
Первая ИС серии 7400, имеющая номер 7400, описана в справочнике
The TTL Data Book как «счетверенная двухвходовая положительная схема И-НЕ».
Это означает, что данная конкретная интегральная схема имеет четыре двухвхо- довых вентиля И-НЕ. Вентили И-НЕ называются положительными, поскольку наличие напряжения соответствует значению 1, а его отсутствие — значению 0.

Глава 18. От счетов к микросхемам
285
На следующем рисунке изображена микросхема с 14 выводами и показано, как эти выводы соотносятся со входами и выходами.
8 9
10 11 12 13 14 7
6 5
4 3
2 1
V
CC
4B
4A
4Y
3B
3A
3Y
1B
1Y
2A
2B
2Y
Gnd
1A
Диаграмма — это вид микросхемы сверху (выводы направлены вниз), при этом выемка в корпусе (упомянутая чуть ранее) расположена слева.
Вывод 14 обозначен символами V
CC
и эквивалентен символу V, который я использовал для обозначения напряжения. По традиции любой двойной подстрочный буквенный индекс рядом с буквой V — источник питания. Бук- ва C в этом индексе — это вход коллектора транзистора, на который подается напряжение. Вывод 7 обозначен буквами GND, что значит «земля» (ground).
Каждая интегральная микросхема, которую вы используете, должна быть под- ключена к источнику питания и земле.
Для микросхем ТТЛ серии 7400 значение V
CC
должно составлять от 4,75 до 5,25 вольта. Другими словами, питающее напряжение — это пять вольт ± 5%.
Если напряжение упадет ниже 4,75 вольта, чип может перестать работать. Если оно превысит значение 5,25, чип может выйти из строя. Обычно для питания микросхем ТТЛ нельзя использовать батарейки. Даже если удастся найти пяти- вольтовую батарейку, недостаточная точность напряжения сделает ее непод- ходящим источником питания для этих чипов. Как правило, микросхемы ТТЛ требуют питания от розетки.
Каждый из четырех вентилей И-НЕ микросхемы 7400 имеет два входа и один выход. Они работают независимо друг от друга. В предыдущих главах мы говорили, что входной сигнал может иметь либо значение 1 (при наличии напряжения), либо значение 0 (при отсутствии напряжения). В действительнос- ти входной сигнал одного из этих вентилей И-НЕ может варьироваться от нуля вольт (земля) до пяти вольт (V
CC
). В микросхеме ТТЛ напряжение, находящееся в диапазоне от 0 до 0,8 вольта, соответствует логическому нулю, а напряжение

286
Код от двух до пяти вольт — логической единице. Напряжения от 0,8 до 2,0 воль- та следует избегать.
Напряжение на выходе вентиля ТТЛ, составляющее около 0,2 вольта, обыч- но соответствует логическому нулю, а 3,4 вольта — логической единице. По- скольку эти значения могут несколько отклоняться, то, говоря о входах и вы- ходах интегральных схем, иногда вместо 0 и 1 люди используют такие понятия, как низкий и высокий уровень сигнала. Более того, низкое напряжение может означать логическую единицу, а высокое — логический ноль. Такая конфигу- рация характеризуется отрицательной логикой. В названии «счетверенная двухвходовая положительная схема И-НЕ» слово «положительная» означает схему с положительной логикой.
Значения напряжения на выходе вентиля ТТЛ 0,2 вольта (логический ноль) и 3,4 вольта (логическая единица) находятся в допустимых пределах — от 0 до 0,8 для логического нуля и от двух до пяти вольт для логической единицы. Таким образом микросхемы ТТЛ изолируются от шумов. Единичный выходной сигнал может уменьшиться примерно на 1,4 вольта, но по-прежнему останется доста- точно высоким, чтобы его можно было квалифицировать в качестве входного единичного сигнала. Нулевой выходной сигнал может увеличиться на 0,6 вольта, но останется достаточно низким, чтобы категоризировать входной нулевой сигнал.
Вероятно, самым важным параметром конкретной интегральной схемы является время установки. Это время, необходимое для того, чтобы изменение входного сигнала привело к изменению выходного.
Время установки микросхем обычно измеряется в наносекундах. Нано- секунда — очень короткий промежуток времени. Одна тысячная часть секун- ды — это миллисекунда. Миллионная часть секунды — микросекунда. Наносе- кунда — это одна миллиардная часть секунды. Время установки для вентилей
И-НЕ в микросхеме 7400 гарантированно составляет менее 22 наносекунд. Это
0,000000022 секунды, или 22 миллиардные доли секунды.
Если вам сложно представить такой маленький промежуток времени, вы не одиноки. Мы можем охватить его лишь мыслью. Наносекунды намного ко- роче всего, что доступно человеческому опыту, поэтому они навсегда останут- ся за пределами нашего понимания. Каждое объяснение лишь делает наносе- кунду более непостижимой. Например, я могу сказать, что если вы держите эту книгу на расстоянии 30 сантиметров от лица, то наносекунда — это время, за которое свет преодолевает расстояние от страницы до вашего глаза. Однако стали ли вы от этого лучше понимать, что такое наносекунда?
Тем не менее именно благодаря таким коротким промежуткам времени, как наносекунда, возможно существование компьютеров. Как вы видели в гла- ве 17, компьютерный процессор выполняет очень простые действия: перемещает

Глава 18. От счетов к микросхемам
287
байт из памяти в регистр, складывает с другим байтом и возвращает результат обратно в память. Единственная причина, по которой результат работы компью- тера — нечто существенное (в данном случае речь идет о реальном компьютере, а не о том, который описывался в главе 17), заключается в том, что эти операции происходят очень быстро. Как сказал Роберт Нойс: «Если примириться с поняти- ем наносекунды, то компьютерные операции концептуально довольно просты».
Давайте продолжим изучение справочника по микросхемам ТТЛ. В этой книге вы увидите много уже знакомых компонентов. Микросхема 7402 содер- жит четыре двухвходовых вентиля ИЛИ-НЕ, микросхема 7404 — шесть ин- верторов, микросхема 7408 — четыре двухвходовых вентиля И, микросхема
7432 — четыре двухвходовых вентиля ИЛИ, а микросхема 7430 — восьмивхо- довый вентиль И-НЕ.
8 9
10 11 12 13 14 7
6 5
4 3
2 1
V
CC
NC
H
G
NC
NC
Y
B
C
D
E
F
Gnd
A
Аббревиатура NC означает no connection — «не подключено».
Микросхема 7474 тоже может показаться знакомой. Это сдвоенный D-триг- гер со сбросом и предустановкой, срабатывающий по фронту, схема которого выглядит следующим образом.
Q
8 9
10 11 12 13 14 7
6 5
4 3
2 1
V
CC
2Clr
2D
2Clk
2Pre
2Q
2Q
1D
1Clk
1Pre
1Q
1Q
Gnd
1Cl r
Q
D
Clk
Q
Pre
Clr
D
Clk
Q
Pre
Clr

288
Код
В справочник по микросхемам ТТЛ включена логическая схема для каж- дого из триггеров.
Q
Q
Установка
Сброс
Вход данных
Синхронизация
Эта схема может показаться похожей на схему, приведенную в конце гла- вы 14, за исключением того, что я использовал вентили ИЛИ-НЕ. Приведенная в справочнике по микросхемам ТТЛ таблица логики также немного отличается.
1   ...   13   14   15   16   17   18   19   20   ...   28


написать администратору сайта