Обзор Части 14
==1049
В пунктах @A-@J перечисляются вопросы, поднятые в Части 14 . В итоговый обзор вошли базовые принципы, факты и советы.
@A Процессоры и шины данных
Это первая из двух процессоро-ориентированных частей книги. Она посвящена архитектуре вычислительных систем и каналам обмена данными - информационным шинам. Вторая часть рассказывает о микроконтроллерах, как о схемных элементах в начинке приборов и инструментов. С учётом повсеместного распространения компьютеров в современной жизни, читатель, скорее всего, уже знаком с большей частью её материала.
@B Шиноцентрическая архитектура вычислительных систем
В классической архитектуре вычислительной системы ( §14.1 ) процессор ( CPU или MPU ) исполняет инструкции, выбираемые из памяти по набору параллельных линий, именуемых шиной ( рис. 14.2 ). Инструкция сообщает, какое конкретно действие должна выполнить машина, а процессор воспринимает эту информацию через блок декодирующей логики . Кроме него в ЦПУ входит: арифметическо-логическое устройство ( ALU ), оно отвечает за действия над данными в регистрах , счётчик программы хранит адрес исполняемой инструкции, набор флагов отражает результат последней операции и используется в операциях с условием. В указателе стека находится ссылка на временное хранилище вспомогательной информации ( промежуточные результаты и адреса возврата ). Наконец, часто вычислительная система имеет кэш-память , позволяющую быстрее добираться до часто используемых данных и команд.
@C Периферия
Микропроцессоры ( CPU ), ориентированные на вычисления ( например, в рабочих станциях ), общаются с периферийными устройствами на плате через специальные шины. Процессоры, рассчитанные на встроенное применение ( т.е. микроконтроллеры ( MPU ), Часть 15 ) имеют меньшее быстродействие, зато оснащены встроенными периферийными блоками и памятью. В списке встроенной периферии можно найти видео системы, сетевые интерфейсы, средства измерения ( АЦП ) и управления ( ЦАП, дискретный ввод-вывод ), последовательные порты ( UART, USB ), интерфейсы дисковых накопителей ( SATA, SAS ).
@D Система команд или машинные коды
Каждый процессор руководствуется в своих действиях особым образом собранными и отформатированными данными - инструкциями ( §14.2 ). Полный набор инструкций называется системой команд , а её двоичное представление - машинными кодами . Инструкции могут быть одной длины или иметь разный размер, например у 32-разрядного процессорного семейства Intel x86 команды занимают от 1 до 15 байт. Прямое написание программ в машинных кодах крайне утомительное дело, поэтому каждому двоичному коду инструкции ставят в соответствие мнемонику - команду на языке ассемблера - удобное для запоминания буквосочетание. Например, «ADD AX, BX» соответствует операции сложения содержимого регистра AX и регистра BX . Программа-ассемблер преобразует текст, созданный человеком ( или компилятором из текста на языке высокого уровня ), в машинные коды процессора.
В качестве примера выбрано подмножество инструкций семейства Intel x86 ( §14.2.2 и табл. 14.1 ): арифметические , переходы по условию , работа со стеком и ввод-вывод . Разбор инструкций сопровождается описанием методов адресации - различных путей, с помощью которых можно добраться до содержимого регистров и памяти. Ассемблер Intel позволяет использовать прямую , косвенную , индексную и непосредственную адресацию.
@E Параллельная шина PC104/ISA
Подключение и передача информации посредством шины данных может быть очень непростым делом, сопровождающимся запутанной системой сигналов подтверждения. Для упрощения знакомства с темой в качестве учебного пособия взята 8-разрядная параллельная шина PC104/ISA ( §14.3 ), появившаяся изначально в IBM PC и ставшая промышленным стандартом. PC104 широко распространена и является удачным примером многоточечного разделяемого параллельного канала передачи данных. Полный набор сигналов приводится в §14.3.11 .
==1050
@F Другие параллельные шины
Внутренняя многоточечная шина PC104/ISA работает слишком медленно ( менее 10 MBps ), ей на смену пришла шина PCI - тоже многоточечной, но достигшей в 64-разрядной версии скорости 2 Gbps . Общение через PCI заметно более сложная задача, нежели передача данных по PC104 ( @E ), и требует нескольких этапов взаимодействия с контроллером шины. На данный момент PCI тоже вышла из употребления, уступив место PCIe ( @H ) с последовательными соединениями точка-точка. Для обмена с дисковыми накопителями есть старый интерфейс IDE ( другие названия ATAPI и PATA ) и SCSI. Оба вышли из употребления и заменены последовательными SATA и SAS соответственно. Ещё один параллельный интерфейс - принтерный порт «Centronics» ( 36-контактный разъём на принтере, 25-контактный D-SUB в компьютере ) заменён последовательными шинами USB и Ethernet. Для подключения лабораторного оборудования используется интерфейс GPIB , который фирма-создатель HP зовёт HPIB. Он доступен и поддерживается по настоящий момент, но уже довольно неудобен для подключения из-за толстых кабелей и крупных соединителей. Большая часть современных приборов и инструментов поддерживает USB и Ethernet. Все упомянутые и некоторые прочие шины сведены в табл. 14.3 .
@G Параллельная передача информации
На более низком уровне интеграции элементов на плате для обмена данными между ИМС, скажем, между контроллером и АЦП классическая параллельная шина с адресом-данными-стробами становится избыточной и упрощается до простого соединения точка-точка ( предполагается, что микросхем всего две ) шириной 8 или даже 4 разряда, сигналом направления и сигналом стробирования ( рис. 14.34 ). Это уже не шина, а просто линия связи.
Исключая линии связи и особые случаи широких быстрых шин для связи ЦП с чипсетами ( «Front-Side bus» ), практически все параллельные шины и соединения сошли с дистанции, оставив поле за последовательными ( @H , @I ) вариантами. Особую пикантность ситуации придаёт тот факт, что одиночная последовательная линия оказывается быстрее, чем исходная линия шириной 8 бит, и вдобавок к увеличению скорости идёт снижение числа проводов и уменьшение размеров кабелей и соединителей.
@H Последовательные интерфейсы
У последовательных линий передачи данных ( §14.7 ) есть масса достоинств: меньше проводов, меньше выводов микросхем приёмников и передатчиков, при использовании соединений точка-точка упрощается и улучшается согласование, отсутствует явление скольжения фронтов ( тактовый сигнал восстанавливается из потока канальных символов ) и, наконец, существенно упрощается переход на оптический или беспроводной канал. Совсем не очевидна более высокая скорость передачи данных при работе через последовательный канал, нежели через параллельный. Тем не менее, параллельные дисковые интерфейсы ( 16-разрядные PATA и SCSI ) не вершине своего развития достигли скорости 1...2 Gbps , а их преемники - последовательные SATA и SAS с одной дифференциальной парой в каждом направлении дают 6 Gbps .
==1051
В компьютерном мире используют внутренние последовательные дисковые шины SATA ( eSATA - внешнее расширение SATA), SAS и PCIe ( §14.7.6 , §14.7.7 ). PCIe - гибридная: в отличие от предшественницы PCI, PCIe организована в виде связей точка-точка с последовательными дифференциальными линиями в каждом направлении. Но в соединитель могут заводиться несколько такого рода наборов - “lanes” ( подобное расширение обозначается сочетанием «×n», на данный момент используются «×1», «×4» и «×16», но есть также «×8» и «×32» ). Каждая линия может передавать данные со скоростью до 8 Gbps , восстанавливая свой собственный тактовый сигнал на приёмной стороне.
Для внешних связей имеются последовательные интерфейсы USB, FireWire, Ethernet и CAN. USB 3.0 ( §14.7.13 ) обеспечивает полнодуплексную связь на скорости 3.2 Gbps , что существенно лучше полудуплекса и 480 Mbps в USB 2.0. FireWire ( IEEE1394, §14.7.14 ) предлагает дуплексную связь на скорости 400 и 800 Mbps ( стандарт предусматривает скорости до 3.2 Gbps ).
@I Последовательные соединения
Последовательная связь очень популярна для организации транспортных путей между ИМС в пределах печатной платы ( @G ) и практически полностью вытеснила параллельные каналы. Здесь популярны SPI, I2C и JTAG.
@J Память
Обсуждение вычислительной техники без упоминания памяти ( §14.4 ) нельзя считать исчерпывающим. Идеальная память позволяет выполнять случайное обращение, ничего не забывает ( даже в отсутствие питания ) и имеет бесконечный ресурс ( количество циклов стирания-записи ). Совсем замечательно, если она вдобавок немного потребляет, недорога и компактна. Настоящие ИМС памяти не достигли таких показателей, по крайней мере, в памяти одного типа.
Среди постоянной памяти ( §14.4.5 ) фаворитом на настоящий момент является flash-NAND . Именно её можно обнаружить в USB «флэшках», картах памяти для фотоаппаратов и в твердотельных дисках. Скорость и ресурс её ограничены, а стирание и запись может выполняться только посекторно. Зато она недорога ( ∼$0.50/GB в розницу ). Для хранения небольших объёмов данных есть EEPROM . Она строится на 2-транзисторных ячейках и позволяет проводить стирание-запись побитово. Некоторые новые технологии обещают близкий к бесконечному ресурс. Среди таких направлений FRAM ( ферроэлектрическая ) MRAM ( магниторезистивная ) и PCM ( память на фазовых переходах ).
Вся память с быстрым доступом и бесконечным ресурсом требует для работы питания . Она подразделяется на два класса: статическую и динамическую.
==1052
==1052