Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
485
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

Краткое содержание главы 133

Затем идут символы для китайского, японского и корейского языков. Сначала идут 1024 фонетических символа (например, катакана и бопомофо), затем иероглифы, используемые в китайском и японском языках (20 992), а затем слоги корейского языка (11 156).

Чтобы пользователи могли создавать новые символы для особых целей, существует еще 6400 кодов.

Хотя UNICODE разрешил многие проблемы, связанные с интернационализацией, он все же не мог разрешить абсолютно все проблемы. Например, латинский алфавитупорядочен, а иероглифы — нет, поэтому программадля английскогоязыка может расположить слова «cat? и «dog» по алфавиту, сравнив значение кодов первых букв, а программе для японского языка нужны дополнительные таблицы, чтобы можно было вычислять, в каком порядке расположены символы в словаре.

Еще одна проблема состоит в том, что постоянно появляются новые слова. 50 лет назад никто не говорил об апплетах, киберпространстве, гигабайтах, лазерах, модемах, «смайликах» или видеопленках. С появлением новых слов в английском языке новые коды не нужны. А вот в японском нужны. Кроме новых терминов, необходимо также добавить по крайней мере 20 000 новых имен собственных и географических названий (в основном китайских). Шрифт Брайля, которым пользуются слепые, вероятно, тоже должен быть задействован. Представители различных профессиональных кругов такжезаинтересованы в наличии каких-либо особых символов. Консорциум по созданию UNICODE рассматривает все новые предложения и выносит по ним решения.

UNICODE использует один и тот же код для символов, которые выглядят почти одинаково, но имеют несколько значений или пишутся немного по-разному в китайском и японском языках (как если бы английские текстовые процессоры всегда писали слово «blue» как «blew», потому что они произносятся одинаково). Одни считают такой подход оптимальным для экономии скудного запаса кодов, другие рассматривают его как англо-саксонский культурный империализм (а вы думали, что приписывание символам 16-битных значений не носит политического характера?). Дело усложняется тем, что полный японский словарь содержит 50 000 иероглифических знаков (не считая собственных имен), поэтому при наличии 20 992 кодов приходится делать выбор и чем-то жертвовать. Далеко не все японцы считают, что консорциум компьютерных компаний, даже если некоторые из них японские, является идеальным форумом, чтобы принимать решения, чем именно нужно жертвовать.

Краткое содержание главы

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

134 Глава 2. Организация компьютерных систем

сколько конвейеров или суперскалярная архитектура с нескольким функциональными блоками, которые действуют параллельно.

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

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

Время доступа к вспомогательной памяти, напротив, гораздо больше (от нескольких миллисекунд и более) и зависит от расположения считываемых и записываемых данных. Наиболее распространенные виды вспомогательной памяти — магнитные ленты, магнитные диски и оптические диски. Магнитные диски существуют в нескольких вариантах: дискеты, винчестеры, IDE-диски, SCSI-диски и RAID-массивы. Среди оптических дисков можно назвать компакт-диски, диски CD-R и DVD.

Устройства ввода-вывода используются для передачи информации в компьютер и из компьютера Они связаны с процессором и памятью одной или несколькими шинами В качестве примеров можно назвать терминалы, мыши, принтеры и модемы. Большинство устройств ввода-вывода используют код ASCII, хотя UNICODE уже стремительно распространяется по всему миру.

Вопросы и задания

1.Рассмотрим машину с трактом данных, который изображен на рис. 2.2. Предположим, что загрузка регистров АЛУ занимает 5 не, работа АЛУ — 10 не, а помещение результата обратно в регистр — 5 не Какое максимальное число миллионов команд в секунду способна выполнять эта машина при отсутствии конвейера?

2.Зачем нужен шаг 2 в списке шагов, приведенном в разделе «Выполнение команд»? Что произойдет, если этот шаг пропустить?

3.На компьютере 1 выполнение каждой команды занимает 10 не, а на компьютере 2 - 5 не. Можете ли вы с уверенностью сказать, что компьютер 2 работает быстрее? Аргументируйте ответ.

4.Предположим, что вы разрабатываете компьютер на одной микросхеме для использования во встроенных системах. Вся память находится на микросхеме и работает с той же скоростью, что и центральный процессор. Рассмотрите принципы, изложенные в разделе «Принципы разработки современных компьютеров», и скажите, важны ли они в данном случае (высокая производительность желательна).

Вопросы и задания

135

5Можно ли добавить кэш-память к процессорам, изображенным на рис. 2.7, б? Если можно, то какую проблему нужно будет решить в первую очередь?

6.В некотором вычислении каждый последующий шаг зависит от предыдущего Что в данном случае более уместно: векторный процессор или конвейер? Объясните, почему.

7.Чтобы конкурировать с недавно изобретенным печатным станком, один средневековый монастырь решил наладить массовое производство рукописных книг. Для этого в большом зале собралось огромное количество писцов. Настоятель монастыря называл первое слово книги, и все писцы записывали его. Затем настоятель называл второе слово, и все писцы записывали его. Этот процесс повторялся до тех пор, пока не была прочитана вслух и переписана вся книга. На какую из систем параллельной обработки информации (см. раздел «Параллелизм на уровне процессоров») эта система больше всего похожа?

8.При продвижении сверху вниз по пятиуровневой иерархической структуре памяти время доступа возрастает. Каково отношение к времени доступа оптического диска и к регистровой памяти? (Предполагается, что диск уже вставлен.)

9.Сосчитайте скорость передачи данных в человеческом глазу, используя следующую информацию. Поле зрения состоит приблизительно из 106 элементов (пикселов). Каждый пиксел может сводиться к наложению трех основных цветов, каждый из которых имеет 64 степени интенсивности. Временное разрешение 100 миллисекунд.

10.Генетическая информация у всех живых существ кодируется в молекулах ДНК. Молекула ДНК представляет собой линейную последовательность четырех основных нуклеотидов: А, С, G и Т. Геном человека содержит приблизительно Зх109нуклеотидов в форме 100 000 генов. Какова общая информационная емкость человеческого генома (в битах)? Какова средняя информационная емкость гена (в битах)?

11.Какие из перечисленных ниже видов памяти возможны? Какие из них приемлемы? Объясните, почему.

1)10-битный адрес, 1024 ячейки, размер ячейки 8 битов;

2)10-битный адрес, 1024 ячейки, размер ячейки 12 битов;

3)9-битный адрес, 1024 ячейки, размер ячейки 10 битов;

4)11-битный адрес, 1024 ячейки, размер ячейки 10 битов;

5)10-битный адрес, 10 ячеек, размер ячейки 1024 бита;

6)1024-битный адрес, 10 ячеек, размер ячейки 10 битов.

12.Социологи могут получить 3 возможных ответа на вопрос «Верите ли вы в фей?»: да, нет, не знаю. Учитывая это, одна компьютерная компаниярешила создать машину для обработки данных социологических опросов. Этот компьютер имеет тринарную память, то есть каждый байт (или трайт?) состоит из 8 тритов, а каждый трит может принимать значение 0, 1 или 2. Сколько

1 36 Глава 2. Организация компьютерных систем

нужно тритов для хранения 6-битного числа? Напишите выражение для числа тритов, необходимых для хранения п битов.

13.Компьютер может содержать 268 435 456 байтов памяти. Почему разработчики выбрали такое странное число вместо какого-нибудь хорошо запоминающегося, например 250 000 000?

14.Придумайте код Хэмминга для разрядов от 0 до 9.

15.Придумайте код для разрядов от 0 до 9 с интервалом Хэмминга 2.

16.В коде Хэмминга некоторые биты «пустые» в том смысле, что они используются для проверки и не несут никакой информации. Какой процент пустых битов содержится в посланиях, полная длина которых (данные + биты проверки) 2"-1? Сосчитайте значение этого выражения при п от 3 до 10.

17.Ошибки при передаче данных по телефонной линии часто происходят «вспышками» (искажается сразу много последовательных битов). Поскольку код Хэмминга может исправлять только одиночные ошибки в символе, в данном случае он не подходит, так как шум может исказить п последовательных битов. Придумайте метод передачи текста в коде ASCII no телефонной линии, где шум может исказить 100 последовательных битов. Предполагается, что минимальный интервал между двумя искажениями составляет тысячи символов. Подсказка: подумайте о порядке передачи битов.

18.Сколько времени занимает считывание диска с 800 цилиндрами, каждый из которых содержит 5 дорожек по 32 сектора? Сначала считываются все сектора дорожки 0, начиная с сектора 0, затем все сектора дорожки 1, начиная

с сектора 0т и т. д. Оборот совершается за 20 мс, поиск между соседними цилиндрами занимает 10 мс, а в случае расположения считываемых данных в разных частях диска — до 50 мс. Переход от одной дорожки цилиндра к другой происходит мгновенно.

19.Диск, изображенный на рис. 2.16, имеет 64 сектора на дорожке и скорость вращения 7200 оборотов в минуту. Какова скорость передачи данных на одной дорожке?

20.Компьютер содержит шину с временем цикла 25 не. За 1 цикл он может считывать из памяти или записывать в память 32-битное слово. Компьютер имеет диск Ultra-SCSI, который использует шину и передает информацию со скоростью 40 Мбайт/с. Центральный процессор обычно вызывает из памяти и выполняет одну 32-битную команду каждые 25 не. Насколько диск замедляет работу процессора?

21.Представьте, что вы записываете часть операционной системы, отвечающую за управление диском. Логически вы представляете себе диск как последовательность блоков от 0 на внутренней стороне до какого-либо максимума снаружи. Когда создаются файлы, вам приходится размещать свободные сектора. Вы можете двигаться от наружного края внутрь или наоборот. Имеет ли значение, какую стратегию выбрать? Поясните свой ответ.

22.Система адресации LBA использует 24 бита для обращения к сектору. Каков максимальный объем диска, с которым она может работать?

Вопросы и задания

137

23.RAID третьего уровня может исправлять единичные битовые ошибки, используя только i диск четности. А что происходит в RAID-массиве второго уровня? Он ведь тоже может исправлять единичные ошибки, но использует при этом несколько дисков.

24.Какова точная емкость (в байтах) компакт-диска второго типа, содержащего данные на 74 минуты?

25.Чтобы прожигать отверстия в диске CD-R, лазер должен включаться и выключаться очень быстро. Какова длительность одного состояния (включения или выключения) в наносекундах, если компакт-диск первого типа прокручивается со скоростью 4х?

26.Чтобы вместить фильм длительностью 133 минуты на односторонний DVD

содним слоем, требуется небольшая компрессия. Вычислите, насколько нужно сжать фильм. Предполагается, что для записи дорожки изображения нужно 3,5 Гбайт, разрешающая способность изображения 720x480 пикселов

с24-битным цветом и в секунду меняется 30 кадров.

27.Скорость передачи данных между центральным процессором и связанной

сним памятью на несколько порядков выше, чем скорость передачи данных

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

28.Графический терминал имеет монитор 1024x768. Изображение на мониторе меняется 75 раз в секунду. Как часто меняется отдельный пиксел?

29.Производитель говорит, что его цветной графический терминал может воспроизводить 224 различных цветов. Однако аппаратное обеспечение имеет только 1 байт для каждого пиксела. Каким же образом получается столько цветов?

30.Монохромный лазерный принтер может печатать на одном листе 50 строк по 80 символов в определенном шрифте. Символ в среднем занимает пространство 2x2 мм, причем тонер занимает 25% этого пространства, а оставшаяся часть остается белой. Толщина слоя тонера составляет 25 микрон. Картридж с тонером имеет размер 25x8x2 см. На сколько страниц хватит картриджа?

31.Когда текст в ASCII-коде с проверкой на четность передается асинхронно со скоростью 2880 символов/с через модем, передающий информацию со скоростью 28 800 бит/с, сколько процентов битов от всех полученных содержат данные?

32.Компания, выпускающая модемы, разработала новый модем с частотной модуляцией, который использует 16 частот вместо 2. Каждая секунда делится на п равных временных отрезков, каждый из которых содержит один из 16 возможных тонов. Сколько битов в секунду может передавать этот модем при использовании синхронной передачи?

33.Оцените, сколько символов (включая пробелы) содержит обычная книга по информатике. Сколько битов нужно для того, чтобы закодировать книгу

138Глава 2. Организация компьютерных систем

в ASCII с проверкой на четность? Сколько компакт-дисков нужно для хранения 10 000 книг по информатике? Сколько двухсторонних, двухслойных DVD-дисков нужно для хранения такого же количества книг?

34.Декодируйте следующий двоичный текст ASCII: 1001001 0100000 1001100 1001111 1010110 1000101 0100000 1011001 1001Ш 1010101 0101110.

35.Напишите процедуру hamming (ascii, encoded), которая переделывает 7 последовательных битов ascii в 11 -битное целое кодированное число encoded.

36.Напишите функцию distance (code, n, k), которая на входе получает массив code из п символов по k битов каждый и возвращает дистанцию символа.

Глава3

Цифровой логический уровень

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

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

Вентили и булева алгебра

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

Вентили

Цифровая схема — это схема, в которой есть только двалогическихзначения. Обычно сигнал от 0 до 1 В представляет одно значение (например, 0), а сигнал от 2 до 5 В — другое значение (например, 1). Напряжение за пределами указанных величин недопустимо. Крошечные электронные устройства, которые называются вен-

1 40 Глава 3. Цифровой логический уровень

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

Описание принципов работы вентилей не входит в задачи этой книги, поскольку это относится к уровню физических устройств, который находится ниже уровня 0. Тем не менее мы очень кратко рассмотрим основной принцип, который не так уж и сложен. Вся современная цифровая логика основывается на том, что транзистор может работать как очень быстрый бинарный переключатель. На рис. 3.1, а изображен биполярный транзистор, встроенный в простую схему. Транзистор имеет три соединения с внешним миром; коллектор, базу и эмиттер. Если входное напряжение У,„ниже определенного критического значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу VoUt, близкому к Vcc (напряжению, подаваемому извне), обычно +5 В для данного типа транзистора. Если V,n превышает критическое значение, транзистор включается и действует как провод, вызывая заземление сигнала Vout (по соглашению О В).

Коллекто

Рис. 3 . 1 . Транзисторный инвертор(а); вентиль НЕ-И (б); вентиль НЕ-ИЛИ (в)

Важно отметить, что если напряжение Vin низкое, то Vout высокое, и наоборот. Эта схема, таким образом, является инвертором, превращающим логический 0 в логическую 1 и логическую 1 в логический 0. Резистор (ломаная линия) нужен для ограничения количество тока, проходящего через транзистор, чтобы транзистор не сгорел. На переключение с одного состояния на другое обычно требуется несколько наносекунд.

На рис. 3.1, 6 два транзистора соединены последовательно. Если и напряжение V,, и напряжение V2 высокое, то оба транзистора будут служить проводниками и снижать Vout. Если одно из входных напряжений низкое, то соответствующий транзистор будет выключаться и напряжение на выходе будет высоким. Другими словами, Vout будет низким тогда и только тогда, когда и напряжение V], и напряжение Уг высокое.

Вентили и булева алгебра

141

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

Эти три схемы образуют три простейших вентиля Они называются вентилями НЕ, НЕ-И и НЕ-ИЛИ. Вентили НЕ часто называют инверторами. Мы будем использовать оба термина. Если мы примем соглашение, что высокое напряжение (Vcc) — это логическая 1, а низкое напряжение («земля») — логический 0, то мы сможем выражать значение на выходе как функцию от входных значений. Значки, которые используются для изображения этих трех типов вентилей, показаны на рис. 3.2, а в. Там же приводится поведение функции для каждой схемы. На этих рисунках А и В — это входные сигналы, а X — выходной сигнал. Каждая строка таблицы определяет выходной сигнал для различных комбинаций входных сигналов.

НЕ

НЕ-И

НЕ-ИЛИ

ИЛИ

А X

А в X

А в X

А в X

А в X

0

1

0

0

1

0

0

1

0

0

0

0

0

0

1

0

0

1

1

0

1

0

0

1

0

0

1

1

 

 

1

0

1

1

0

0

1

0

0

1

0

1

 

 

1

1

0

1

1

0

1

1

1

1

1

1

Рис. 3.2. Значки для изображения 5 основных вентилей. Поведение функциидля каждого вентиля

Если выходной сигнал (см. рис. 3.1, б) подать в инвертор, мы получим другую схему, противоположную вентилю НЕ-И, то есть такую схему, у которой выходной сигнал равен 1 тогда и только тогда, когда оба входных сигнала равны 1. Такая схема называется вентилем И; ее схематическое изображение и описание соответствующей функции даны на рис. 3.2, г. Точно так же вентиль НЕ-ИЛИ может быть связан с инвертором. Тогда получится схема, у которой выходной сигнал равен 1 в том случае, если хотя бы один из входных сигналов — 1, и равен 0, если оба входныхсигналаравны0. Изображениеэтойсхемы,когорая называется вентилем ИЛИ, а также описание соответствующей функции даны на рис. 3.2, д. Маленькие кружочки в схемах инвертора, вентиля НЕ-И и вентиля НЕ-ИЛИ называются инвертирующими выходами Они также могут использоваться в другом контексте для указания на инвертированный сигнал.

Пять вентилей, изображенных на рис. 3.2, составляют основу цифрового логического уровня. Из предшествующего обсуждения должно быть ясно, что вентили НЕ-И и НЕ-ИЛИ требуют два транзистора каждый, а вентили И и ИЛИ — три транзистора каждый. По этой причине во многих компьютерах используются вен-

1 42 Глава 3. Цифровой логический уровень

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

Хотя устройство вентилей относится к уровню физических устройств, мы все же упомянем основные серии производственных технологий, так как они часто упоминаются в литературе. Две основные технологии — биполярная и МОП (ме- талл-оксид-полупроводник). Среди биполярных технологий можно назвать ТТЛ (транзисторно-транзисторную логику), которая служила основой цифровой электроники на протяжении многих лет, и ЭСЛ (эмиттерно-связанную логику), которая используется в тех случаях, когда требуется высокая скорость выполнения операций.

Вентили МОП работают медленнее, чем ТТЛ и ЭСЛ, но потребляют гораздо меньше энергии и занимают гораздо меньше места, поэтому можно компактно расположить большое количество таких вентилей. Вентили МОП имеют несколько разновидностей: р-канальный МОП-прибор, n-канальный МОП-прибор и комплиментарный МОП. Хотя МОП-транзисторы конструируются не так, как биполярные транзисторы, они обладают такой же способностью функционировать, как электронные переключатели. Современные процессоры и память чаще всего производятся с использованием технологии комплиментарных МОП, которая работает при напряжении +3,3 В. Это все, что мы можем сказать об уровне физических устройств. Читатели, желающие узнать больше об этом уровне, могут обратиться к литературе, приведенной в главе 9.

Булева алгебра

Чтобы описать схемы, которые строятся путем сочетания различных вентилей, нужен особый тип алгебры, в которой все переменные и функции могут принимать только два значения: 0 и 1. Такая алгебра называется булевой алгеброй. Она названа в честь английского математика Джорджа Буля (1815-1864). На самом деле в данном случае мы говорим об особом типе булевой алгебры, а именно об алгебре релейных схем, но термин «булева алгебра» очень часто используется в значении «алгебра релейных схем», поэтому мы не будем их различать.

Как и в обычной алгебре (то есть в той, которую изучают в школе), в булевой алгебре есть свои функции. Булева функция имеет одну или несколько переменных и выдает результат, который зависит только от значений этих переменных. Можно определить простую функцию f, сказав, что f(A)=l, если А=0, и f(A)=-O, если А=1. Такая функция будет функцией НЕ (см. рис. 3.2, а).

Так как булева функция от п переменных имеет только 2" возможных комбинаций значений переменных, то такую функцию можно полностью описать в таблице с 2" строками. В каждой строке будет даваться значение функции для разных комбинаций значений переменных. Такая таблица называется таблицей истинности. Все таблицы на рис. 3.2 представляют собой таблицы истинности. Если мы