Архитектура ПК PDF 2020
Document Details
Северо-Осетинский государственный торгово-экономический колледж
2020
Туаева М.Т.
Tags
Related
Summary
Это учебное пособие по архитектуре персонального компьютера, которое было издано в 2020 году. Пособие описывает процессоры, память, шины и устройства ввода-вывода.
Full Transcript
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РСО-АЛАНИЯ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ «ВЛАДИКАВКАЗСКИЙ ТОРГОВО-ЭКОНОМИЧЕСКИЙ ТЕХНИКУМ» АРХИТЕКТУРА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА УЧЕБНОЕ ПОСОБИЕ Владикавказ...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РСО-АЛАНИЯ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ «ВЛАДИКАВКАЗСКИЙ ТОРГОВО-ЭКОНОМИЧЕСКИЙ ТЕХНИКУМ» АРХИТЕКТУРА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА УЧЕБНОЕ ПОСОБИЕ Владикавказ 2020 СОДЕРЖАНИЕ ВВЕДЕНИЕ........................................................................................................... 3 1. ПРОЦЕССОРЫ................................................................................................. 4 2. ПАМЯТЬ.......................................................................................................... 11 3. ШИНЫ............................................................................................................. 22 4. УСТРОЙСТВА ВВОДА-ВЫВОДА.............................................................. 27 КОНТРОЛЬНЫЕ ВОПРОСЫ........................................................................... 39 ЛИТЕРАТУРА.................................................................................................... 40 2 ВВЕДЕНИЕ Цифровой компьютер – это электронное устройство, способное решать определенные задачи, исполняя данную ему последовательность команд (инструкций). Описание последовательности команд, исполнение которых приводит к решению определенной задачи, называется программой. Современный цифровой компьютер обычно включает в себя следующие основные элементы: центральный процессор (или процессоры); основную (оперативную) память; вспомогательную память; устройства ввода-вывода (клавиатуру, мышь, принтер, веб-камеру и другие). Эти элементы объединяются с помощью «шины» (единого коммуникационного пространства (набора проводников) для передачи управляющих сигналов, адресов и данных). На рисунке 1 показана структура персонального компьютера с шинной организацией. Рисунок 1. Схема компьютера 3 1. ПРОЦЕССОРЫ Центральный процессор – это основное вычислительное устройство, главная составляющая часть компьютера, его «мозг». Его основной задачей является исполнение машинных инструкций или команд. Центральный процессор способен исполнять только небольшой набор простых команд. Такими командами могут являться, например, сложение двух чисел, сравнение двух чисел, чтение данных из памяти или запись в память результата вычислений. Команды, непосредственно исполняемые аппаратным обеспечением компьютера, можно рассматривать как слова, которые в совокупности формируют язык, называемый машинным. Исполнение команды состоит из трех основных шагов: сначала процессор вызывает команду из памяти, затем определяет ее тип (декодирует), после чего производит соответствующую операцию (действие). За первые два шага отвечает блок управления процессора, а за третью – арифметико-логическое устройство (далее – АЛУ), выполняющее арифметические (например, сложение, вычитание, умножение) и логические (например, «И», «ИЛИ», «Отрицание») операции. Описанная последовательность шагов (вызов – декодирование – исполнение) одинакова для всех компьютеров. Кроме блока управления и АЛУ, в состав процессора входит самая быстрая в компьютере память, состоящая из нескольких регистров (блоков ячеек памяти) определенного размера (обычно 8, 16, 32 или 64 бита). Регистры необходимы процессору для хранения непосредственно исполняемых им в данный момент команд и обрабатываемых данных. Кроме регистров на микросхеме процессора может размещаться кэш- память, в силу близости к процессору эта память является второй по быстродействию. К сожалению, поскольку микросхема процессора достаточно мала, а на ней необходимо разместить множество элементов, кэш-память является также очень дорогой. Интерпретация Чем проще язык, тем проще разработать процессор, способный исполнять команды этого языка, но тем труднее программисту писать на нем программы (поскольку он ограничен возможностями языка). Мы уже знаем, что центральный процессор работает по определенному алгоритму. 4 Следовательно, можно написать программу (имитирующую работу центрального процессора), которая может исполнять другие программы. Такая программа называется интерпретатором. Программы, исполняемые процессором, могут быть исполнены интерпретатором и наоборот, поэтому можно говорить об их эквивалентности. Таким образом, при разработке компьютеров можно идти по двум принципиально разным путям. После того как мы выберем машинный язык для нового компьютера, мы можем либо разработать процессор, исполняющий программы на этом языке, либо написать программу- интерпретатор (для таких программ) и разработать процессор для исполнения интерпретатора. По сути, интерпретатор осуществляет «перевод» с выбранного машинного языка на более простой (элементарный) язык процессора. Следовательно, процессор, предназначенный для исполнения интерпретатора, может быть существенно проще, чем процессор, предназначенный для исполнения программ на машинном языке без предварительной интерпретации. Основное преимущество интерпретации состоит в том, что разработку сложного аппаратного обеспечения можно заменить разработкой сложного программного обеспечения. Копирование же последнего намного проще, чем первого. В конце 50-х годов 20-го века компания IBM стала первой компанией, которая с помощью интерпретации обеспечила совместимость своих компьютеров из разных линек (условно большой, средней и низкой производительности). До этого момента аппаратное обеспечение более производительной линейки могло поддерживать команды, которые отсутствовали в машинных языках компьютеров других линеек, и поэтому некоторые программы не могли на них исполняться. Именно для обозначения такой совместимости был введен термин «архитектура». В рамках одной архитектуры может существовать множество различных компьютеров, отличающихся по цене, производительности и другим параметрам, но все они должны обеспечивать исполнение одинаковых программ. В 70-х годах 20-го века практически все компьютеры использовали интерпретацию. Интерпретаторы позволили разработчикам экспериментировать и создавать все более сложные команды (не внося изменения в аппаратное обеспечение). И, как часто бывает, скоро этот 5 процесс стал самоподдерживающимся, то есть создание набора сложных команд стало представлять самостоятельный интерес, не всегда приносящий пользу разработке компьютера в целом. Кроме того, сама парадигма «единой архитектуры» предполагала разработку единого набора команд для различных по производительности компьютеров, а значит, усложнение набора команд происходило как для высокопроизводительных, так и для малопроизводительных компьютеров. Это привело к тому, что в 80-х годах создались условия благоприятные для разработки новых процессоров без интерпретации. Системы RISC и CISC В начале-середине 80-х годов 20-го века в университетах Беркли и Стенфорде были разработаны не предполагающие интерпретации процессоры, позже развившиеся в широко известные продукты SPARC и MIPS соответственно. Для обозначения процессоров новой архитектуры в университете Беркли был введен термин «компьютер с сокращенным набором команд» (reduced instruction set computer, RISC). Этот термин несколько искажает основной смысл (хотя на тот момент времени число команд в RISC-компьютере действительно было не велико), скорее правильно говорить о «компьютере с упрощенным набором команд» или о «компьютере с набором простых и быстрых команд». Антагонистом RISC- компьютера выступал CISC-компьютер – «компьютер с полным набором команд» (complex instruction set computer), то есть скорее «компьютер с набором сложных команд». Примером CISC-компьютера является, например, Intel Pentium и его аналоги. При разработке новых процессоров главной задачей было добиться лучшего быстродействия, при этом совместимостью с уже существовавшими на тот момент процессорами было пожертвовано. Первоначально в машинный язык RISC-процессоров включались быстрые команды, то есть команды, которые быстро исполняются. Однако под производительностью компьютера фактически понимается не число исполненных в единицу времени (например, в секунду) команд, а число команд, которые запускаются в единицу времени, поэтому впоследствии в машинный язык RISC-процессоров формировался из быстро запускаемых команд. Противоречия между RISC и CISC процессорами были преодолены компанией Intel. Начиная с 1989 года (и 486 процессора), команды 6 машинного языка процессоров этой компании разделены на два типа. Самые простые команды (первого типа) исполняются непосредственно процессором, аналогично RISC, а более сложные команды (второго типа) интерпретируются и обрабатываются, также как в CISC. Поскольку простые команды встречаются существенно чаще, чем сложные, то производительность при таком подходе не сильно ниже, чем производительность RISC-процессоров, при этом такой подход позволяет обеспечить совместимость с CISC-процессорами, а также позволяет использовать существующее программное обеспечение без внесения в него изменений. Как можно сделать процессор более производительным? Самый простой подход состоит в увеличении тактовой частоты процессора. Неформально, наш процессор можно считать цифровым устройством, состояние которого изменяется в дискретные моменты времени – такты. Чем выше тактовая частота процессора, тем чаще в единицу времени может изменяться состояние процессора и тем быстрее он может выполнять вычисления. К сожалению (или к счастью), разработчики процессоров очень интенсивно использовали описанную возможность повышения производительности, так интенсивно, что на настоящий момент на этом пути практически достигнуты физические пределы развития (например, существенную роль играют квантовая неопределенность и невозможность передачи информации быстрее скорости света). Тем не менее, существуют альтернативные подходы к увеличению производительности процессоров. Как мы уже знаем, более производительным будет считаться тот процессор, который сможет запустить больше команд в единицу времени. Процессор способный запустить 1 миллиард команд в секунду, будет иметь производительность 1 GIPS = 109 IPS (Instructions Per Second), независимо от того сколько времени займет исполнение этих команд. Это означает, что чем больше команд мы можем запустить одновременно, тем выше производительность нашего процессора. Таким образом, вторым по важности подходом к увеличению производительности процессоров является параллелизм. Существуют два основных варианта параллелизма, нашедших применение в разработке современных процессоров. Первый вариант предполагает реализацию параллелизма внутри одного процессора. Он достигается за счет 7 увеличения числа одновременно обрабатываемых команд и получил название «параллелизм уровня команд». Второй вариант предполагает увеличение числа процессоров (или вычислительных ядер), способных одновременно обрабатывать информацию. Этот вариант получил название «параллелизм уровня процессоров». Далее мы рассмотрим две параллельные архитектуры процессоров, получивших широкое распространение. Мультипроцессоры (многоядерные процессоры) Мультипроцессоры реализуют концепцию «множественный поток команд, множественный поток данных» (Multiple Instruction stream, Multiple Data stream, MIMD). Неформально, в рамках данной концепции несколько независимых процессоров исполняют каждый свой набор команд применительно к своим данным. В состав мультипроцессора входят несколько процессоров (или вычислительных ядер) и одно пространство памяти, доступ к которому имеют все процессоры. Поскольку каждый процессор может обращаться к любой области памяти для чтения или записи информации, то могут возникать различные аппаратные ошибки. Например, пусть один процессор записывает в память роман «Мастер и Маргарита», а второй – «Белую гвардию». Если процессоры будут обращаться к одним и тем же областям памяти, то в конечном итоге в области будет записан текст того романа, который будет записан последним обратившимся к области процессором. В такой ситуации прочитать полностью ни первый, ни второй роман будет невозможно. Избежать возникновения аппаратных ошибок можно на уровне программного обеспечения. Мультипроцессор относительно просто реализовать. Достаточно соединить единственной шиной несколько процессоров (или вычислительных ядер) и общую память. При такой организации возможно возникновение «состязаний» между процессорами за общий ресурс – шину. Для сокращения числа состязаний каждый процессор снабжается своей локальной памятью. Процессоры в основном работают со своей памятью и в более редких случаях обращаются к общей памяти, что снижает нагрузку на общую шину. Примеры схем мультипроцессоров приведены на рисунке 2. 8 Рисунок 2. Мультипроцессор с одной шиной и общей памятью и мультипроцессор с локальной памятью у каждого процессора Поскольку организовать работу с общей памятью достаточно просто, мультипроцессоры получили очень широкое распространение. С начала 21 века практически все процессоры для потребительского рынка (настольных и портативных ПК, планшетов и смартфонов) являются именно мультипроцессорами. SIMD-процессоры Вторая, рассматриваемая нами параллельная архитектура, реализует концепцию «одиночный поток команд, множественный поток данных» (Single Instruction stream, Multiple Data stream, SIMD). Неформально, в рамках данной концепции процессор включает в себя основной управляющий модуль (контроллер) и несколько модулей обработки данных (процессорных элементов). Основной модуль осуществляет вызов и декодирование команд, а также исполняет команды, не связанные с обработкой данных, или инициирует исполнение команд процессорными элементами. Если команда предполагает обработку данных, контроллер передает ее процессорным элементам (всем или группе), после чего каждый элемент исполняет эту команду в отношении своих данных. Каждый процессорный элемент обладает своей памятью. 9 Ситуации, при которых требуется производить одинаковые действия над различными данными, встречаются достаточно часто. Например, для воспроизведения изображения на мониторе требуется рассчитывать цвет каждого пикселя. При выполнении компьютерных экспериментов в науке и технике также часто приходится обрабатывать большие массивы информации в соответствии с одинаковыми принципами. Например, необходимо по одному алгоритму обработать данные, полученные при столкновении множества частиц в большом адроном коллайдере. Если данных достаточно много и их можно обрабатывать независимо друг от друга, то применение для обработки SIMD-процессоров может оказаться очень эффективным решением. Как уже упоминалось, SIMD-процессоры можно эффективно применять для обработки изображений. Это связано с тем, что алгоритмы для обработки изображений обычно хорошо структурированы и предполагают многократное повторение одинаковых действий для различных пикселей, областей экрана, вершин или ребер геометрических фигур. Вследствие этого практически все современные графические процессоры (Graphics Processing Unit, GPU), применяемые в видеокартах, используют SIMD-обработку для обеспечения высокой вычислительной мощности. На рисунке 3 приведена схема SIMD-процессора. Рисунок 3. Схема SIMD-процессора 10 2. ПАМЯТЬ Память — это элемент компьютера, предназначенный для хранения программ и данных. Память отвечает исключительно за хранение информации (и за целостность при хранении), за изменение (преобразование) информации отвечает процессор. Базовой единицей измерения количества информации является бит. В этом смысле бит равен количеству информации, получаемой при ответе на вопрос, допускающий с равной вероятностью только ответы «да» или «нет». При хранении информации биту соответствует один разряд двоичной памяти (который также называют битом). Двоичный разряд может принимать только два значения, например, 0 или 1. Это минимальная единица памяти. Двоичный разряд можно реализовать, основываясь на разности значений какой-либо физической величины. Например, можно принять отсутствие электрического напряжения за 0, а определенное значение напряжения (например, 0,1 Вольта) за 1. Бит очень маленькая единица памяти, способная хранить очень небольшое количество информации. Например, с помощью одного бита мы не сможем различить пальцы на одной руке (то есть не сможем присвоить и сохранить имя пальцев). Поэтому для обеспечения эффективной работы биты объединяются в группы, называемые ячейками, при этом память представляет собой совокупность ячеек. В настоящий момент широко распространены ячейки, состоящие из 8 бит, называемые байтами. Ячейка, состоящая из k бит, может хранить любое из 2k двоичных слов длины k. Соответственно значением байта может являться любое из 256 двоичных слов длины 8. Каждой ячейке присваивается уникальный номер – адрес, по которому к ней можно получить доступ (обратиться). Ячейка – минимальная единица памяти, имеющая адрес. Если память состоит из n ячеек, то им будут присвоены адреса от 0 до n – 1. Обычно адреса ячеек представляются двоичными числами. Если мы используем m-битные адреса, то сможем обратиться к 2m ячеек памяти. Число бит адреса не зависит от числа бит ячейки. Например, с помощью 32-битных адресов 11 можно получить доступ к 232 ячеек памяти независимо от того 32 бита в ячейке или 64. На рисунке 4 показаны различные варианты организации 128- разрядной памяти: 16 ячеек по 8 бит, 8 ячеек по 16 бит или 4 ячейки по 32 бита. Рисунок 4. Варианты организации 128-разрядной памяти Иерархическая структура памяти За десятилетия развития компьютерной техники сложилось определенное «противоречие» между подходами к оценке эффективности процессоров и памяти. По традиции процессоры в первую очередь оценивают по производительности, а память по объему (емкости). Соответственно инженеры прилагают существенные усилия по увеличению этих показателей, поэтому процессоры (в общем случае) работают на много быстрее памяти. Вследствие этого процессор при обращении к памяти получит запрошенное слово только спустя несколько тактов. Чем медленнее память, тем дольше процессор не получит запрашиваемую информацию. Традиционным подходом к удовлетворению потребности в быстрой и большой по объему памяти является организация памяти в соответствии с иерархической структурой. На вершине такой иерархии находится 12 наиболее быстрая память маленькой емкости. Ниже по иерархии располагается более медленная память большей емкости. Для современного персонального компьютера иерархия памяти выглядит следующим образом: Уровень Тип памяти Время доступа Максимальный иерархии объем 1 Регистры Наносекунды Около ста байт процессора (несколько сотен байт) 2 Кэш-память Наносекунды Несколько мегабайт 3 Основная Десятки наносекунд Несколько (оперативная) терабайт (у очень память дорогих компьютеров, например, Apple Mac Pro) 4 Твердотельные Десятые доли микросекунд Несколько накопители и для твердотельных дисков десятков терабайт магнитные жесткие Микросекунды для диски магнитных жестких дисков 5 Оптические диски Доли секунд, секунды (с Потенциально и накопители на учетом необходимости неограничен магнитной ленте помещения носителя информации в компьютер) Помимо изменения времени доступа и объема, по иерархии изменяется также стоимость объема памяти. Терабайт основной памяти стоит тысячи долларов, твердотельных накопителей – десятки долларов, жестких магнитных дисков – доллары. Далее мы коротко рассмотрим первые четыре уровня иерархии. Регистры процессора Регистр процессора – это блок ячеек памяти, образующий сверхбыструю память. 13 Регистр состоит из триггеров – электронных устройств, способных длительно находиться в одном из двух устойчивых состояний и изменять их при управляющем воздействии. Регистры делятся по своему функциональному назначению. Например, существуют следующие регистры. Указатель команд – регистр, указывающий на команду, которую требуется выполнить следующей. Регистры данных, служащие для хранения результатов промежуточных вычислений. Регистры флагов, хранящие текущее состояние процессора. Обычно все регистры имеют одинаковую длину, превышающую длину ячейки. Например, при 8-битной ячейке памяти разрядность (битность) регистра может составлять 32-ва или 64-ре бита. Поэтому в кэш- пямяти и основной (оперативной) памяти ячейки группируются в «слова», которые являются минимальной единицей памяти для обработки процессором. Число ячеек в слове определяется отношением разрядности регистров процессора к числу бит в ячейке. Например, пусть ячейка является байтом, тогда для 32-разрядного процессора слово состоит из 4-х байт, а для 64-разрядного процессора из 8-ми байт. Кэш-память Кэш-память – быстрая память, промежуточная между регистрами процессора и основной памятью. Как мы уже упоминали, технологическая возможность создания быстрой, как процессор, памяти существует, но ее необходимо размещать непосредственно на микросхеме процессора. Это означает, что придется увеличить размеры микросхемы, в свою очередь это приведет к ее удорожанию. Кроме того, (по крайней мере, на текущий момент) существуют другие технологические факторы, которые не позволят разместить на микросхеме процессора память большого объема. Быстрая память небольшого объема, размещаемая на микросхеме процессора или в непосредственной близости от нее (например, в корпусе процессора, но не на его микросхеме) называется кэш-памятью (от английского слова «cash» – «наличные деньги» буквально «деньги под рукой»). Далее мы кратко рассмотрим принцип работы кэш памяти. Принцип, лежащий в основе работы кэш-памяти, называется принципом локальности. Его суть заключается в том, что обычно процессор не обращается к ячейкам памяти произвольно, скорее, на протяжении 14 достаточно длительных промежутков времени он работает с небольшими областями памяти (группами близко расположенных ячеек). Это связано с тем, что в обычной программе большинство команд требуют последовательного исполнения и соответственно располагаются в ячейках памяти (исключением являются команды перехода (буквально «прыжки» – jump) и вызовы процедур, обычно отсылающие к удаленным адресам памяти). Кроме того, значительную часть программы занимают циклы, суть которых состоит в многократном исполнении фиксированного набора последовательно идущих команд. Основная идея применения кэш-памяти состоит в том, чтобы (руководствуясь принципом локальности) разместить в ней не только данные, которые нужны процессору в данный момент, но и те, которые с большой вероятностью могут потребоваться ему в следующий. Если процессору требуются данные для обработки, то в первую очередь он обращается к кэш-памяти. Если данные в ней отсутствуют (случается кэш-промах), процессор обращается к основной памяти. В последнем случае процессор получает запрошенные данные, а, кроме того, запрошенные данные вместе с соседними данными помещаются в кэш- память. Таким образом, повышается вероятность обнаружить необходимые процессору данные в кэш-памяти при его очередном запросе. Как мы знаем процессор работает со словами, состоящими из нескольких ячеек памяти. Поэтому, чтобы обеспечить перемещение в кэш- память большего количества данных, чем требуется процессору при одном запросе, кэш-память организуется в виде блоков, состоящих из нескольких слов. Эти блоки называются строками кэша. При кэш-промахе в кэш- память загружается строка из основной памяти, содержащая запрашиваемое процессором слово. Следовательно, основная память также должна поддерживать построчное представление. Схема подключения процессора с кэш-памятью к основной памяти приведена на рисунке 5. Чем больше нужных процессору данных «находится» в кэш-памяти, тем меньше среднее время доступа. Например, если процессору за короткий промежуток времени требуется k раз обратиться к одному слову данных, то при использовании кэш памяти ему достаточно 1 раз обратиться к медленной основной памяти k – 1 раз к быстрой кэш-памяти. Для достаточно больших k выигрыш в производительности стремится к 15 отношению времени отклика основной памяти к времени отклика кэш- памяти. Рисунок 5. Схема подключения процессора с кэш-памятью и основной памяти Основная (оперативная) память Основная (оперативная) память – это энергозависимая память, в которой во время работы компьютера хранятся выполняемые системные (входящие в состав операционной системы) и прикладные программы, а также данные, обрабатываемые этими программами. Этот вид памяти имеет принципиально важное значение в силу своего промежуточного положения. С одной стороны, регистры процессора и кэш- память обладают малой емкостью и достаточно дороги, с другой, время обращения к памяти более низкого уровня иерархии крайне велико. Таким образом, основная память обладает достаточно большой емкостью и относительно приемлемым временем отклика. В качестве основной памяти для персональных компьютеров наиболее распространена динамическая память с произвольным доступом (dynamic random access memory, DRAM). DRAM состоит из ячеек памяти, представляющих собой конденсаторы, созданные на основе полупроводниковых технологий. В данном случае различают заряженное и разряженное состояние конденсатора для хранения бита информации. Со временем заряженный конденсатор разряжается, чтобы не потерять данные, его необходимо динамически «подзаряжать» (отсюда dynamic). 16 Как следует из названия, DRAM позволяет обращаться к произвольным ячейкам памяти. Для этого ячейки группируются в прямоугольные таблицы, состоящие строк и столбцов. Одна такая таблица называется «страницей», а совокупность страниц – «банком». Обращение к ячейке осуществляется по номеру строки и столбца, на пересечении которых находится ячейка. Наиболее распространенными типами DRAM на настоящий момент являются DDR3 и DDR4 для обычной оперативной памяти и GDDR6 для оперативной памяти видеокарт. Жесткие магнитные диски Жесткий магнитный диск (жесткий диск, hard (magnetic) diskdrive, HDD) – это запоминающее энергонезависимое устройство, основанное на принципе магнитной записи. Жесткий магнитный диск состоит из одной или нескольких закрепленных друг под другом на вращающейся оси круглых пластин (собственно, дисков), поверхности которых покрыты магнитным слоем. Над каждой поверхностью на кронштейне расположена «считывающая головка». Кронштейны сконструированы таким образом, что позволяют перемещать считывающие головки в направлении к оси, на которой закреплены пластины, или от нее. При работе диска поверхность пластины движется относительно считывающей головки, при этом головка опирается на воздушную подушку и не касается поверхности пластины. При записи информации на головку, содержащую катушку индуктивности, подается переменный ток. Возникающее при этом магнитное поле намагничивает область поверхности, расположенную в этот момент под головкой. При чтении информации головка проходит над намагниченными областями, при этом в ней возникает переменный ток, что позволяет считывать записанные биты. Строение жесткого диска приведено на рисунке 6. При записи на обычные диски магнитные области намагничиваются вдоль окружности диска. В этом случае можно различать, например, намагниченность «по» и «против» часовой стрелки. Более современные технологии перпендикулярной записи позволяют намагничивать магнитные области не горизонтально, вдоль окружности, а вертикально – «в глубь». В этом случае можно различать намагниченность «к» поверхности диска и «от» нее. Экспериментально доказано, что плотность перпендикулярной записи может достигать 370 гигабит на один квадратный сантиметр. 17 Рисунок 7 иллюстрирует особенности продольной и перпендикулярной записи данных на диск. Рисунок 6. Строение жесткого диска Рисунок 7. Продольная и перпендикулярная запись Поверхность пластин HDD-диска делится на дорожки – концентрические окружности магнитных областей. Дорожки с разных поверхностей, расположенные на одинаковом расстоянии от оси диска, формируют цилиндр. На каждой дорожке выделяются отрезки одинаковой длины – секторы. Сектор – является адресуемой областью памяти HDD- 18 диска. Адрес сектора состоит из трех чисел: номера цилиндра, номера головки (или поверхности) и собственно номера сектора. Конфигурация дорожки диска показана на рисунке 8. Рисунок 8. Фрагмент дорожки диска. В секторе выделяют область преамбулы (preamble), необходимую для синхронизации головки перед чтением или записью, область данных и область кода исправляющего ошибки. Между соседними секторами находится пространство, которое не используется для записи данных, – межсекторный интервал. На соседних дорожках обычно содержится одинаковое число секторов, но поскольку одна из них обязательно длиннее, то часть дорожки не будет использоваться для записи информации. Эта часть дорожки и будет использована для формирования межсекторных интервалов. HDD-диском управляет особый процессор – контроллер. Контроллер получает от операционной системы команды на операции с HDD-диском (например, read или write), управляет вращением пластин и перемещением кронштейнов, обнаруживает и исправляет ошибки, а также управляет передачей данных. С появлением в середине 80-х годов «устройств со встроенным контроллером» (Integrated Drive Electronics, IDE) контроллер диска стал располагаться на самом HDD-диске, а не на плате расширения. При этом на материнской плате стал располагаться IDE-контроллер, роль которого 19 состояла не в непосредственном управлении HDD-диском, а в обеспечении обмена информации с ним (в том числе передаче контроллеру диска управляющих команд от операционной системы). При этом именно IDE- контроллер обеспечивал подключение HDD-диска к шине, в том числе «захватывал» ее для передачи информации. IDE (альтернативное название ATA, Advanced Technology Attachment) является интерфейсом (каналом) параллельного подключения HDD-дисков и оптических приводов (для CD- или DVD- дисков) к компьютеру. Стандарт IDE несколько раз совершенствовался, после чего был заменен «наследником» – последовательным интерфейсом обмена данными SATA (Serial Advanced Technology Attachment), который используется в большинстве современных компьютеров. Стандарт SATA можно считать 7 редакцией стандарта IDE/ATA. В третьей версии SATA (2008 год) позволяет передавать до 6 гигабит в секунду. Для сравнения в 6 версии стандарта IDE/ATA (2001 год) скорость передачи данных составляла 0,8 гигабит в секунду. Твердотельные накопители В начале 1980-х годов Фудзио Масуока, использовав эффект, который до этого рассматривался только как механизм «поломки» транзисторов (полупроводниковый прибор), изобрел новый вид памяти – флэш-память. Использованный эффект называется «инжекция горячих носителей». Неформально, он состоит в том, что транзистор, использование которого основано на способности переключаться между двумя состояниями, при попадании электрического заряда может навсегда перейти в одно более неизменяемое состояние (и тем самым выйти из строя). Фудзио Масуока показал, что описанный эффект можно использовать для записи информации. Мы не будем останавливаться на устройстве флэш-памяти, поскольку это потребовало бы описания многих технических деталей, скажем только, что флэш-память состоит из транзисторов с плавающим затвором. Твердотельный накопитель (solid-state drive, SSD, SSD-диск) – это запоминающее энергонезависимое устройство на основе микросхем памяти. SSD-диски являются электронными устройствами и поэтому обладают большей (на настоящий момент в несколько раз) 20 производительностью по сравнению HDD-дисками, в которых используются механические элементы. Кроме того, отсутствие движущихся механических элементов, которые легко повредить при переносе, делают SSD-диски наиболее подходящими для портативных и мобильных устройств. Основным недостатком SSD-дисков на текущий момент является их большая стоимость по сравнению с HDD-дисками. Несмотря на уменьшение стоимости с течением времени разрыв все еще составляет десятки и даже сотни раз. Как и в общем случае, производители компьютеров пользуются принципом иерархической организации памяти. На текущий момент во многих компьютерах SSD- и HDD-диски используются совместно, при этом SSD-диски занимают 4-й уровень иерархии, а HDD-диски 5-й (съемные носители, при таком рассмотрении, переходят на 6-й уровень). В перспективе SSD-диски могут полностью заменить HDD-диски, но возможно иерархический подход окажется эффективным и будет использоваться на протяжении длительного времени. Еще одним недостатком SSD-дисков можно назвать постепенное изнашивание основных электронных элементов (транзисторов) при каждом цикле перезаписи информации. При каждом изменении состояния транзистора он приближается к выходу из строя. Для обеспечения надежности и более длительного срока работы запись данных на SSD-диск осуществляется равномерно. Для этого каждый раз для записи выбирается область памяти, которая давно не использовалась. Благодаря такому подходу для обычных пользователей описанный недостаток SSD-дисков не имеет практического значения. 21 3. ШИНЫ В корпусе современного компьютера (ПК, ноутбука, планшета или смартфона) находится основная «материнская» плата, содержащая микросхему процессора, несколько разъемов для оперативной памяти и различные вспомогательные микросхемы. Кроме перечисленного вдоль материнской платы проходит шина (или несколько шин), к которой через специальные разъемы можно подключить различные устройства ввода- вывода. Шина используется для передачи данных между элементами компьютера. Компьютерная шина — это единое коммуникационное пространство (набор проводников), служащее для передачи данных между элементами компьютера. На рисунке 9 приведена физическая структура ноутбука и смартфона. Рисунок 9. Физическая структура ноутбука и смартфона 22 На рисунке 10 приведена логическая структура персонального компьютера с одной шиной. В таком компьютере центральный процессор, память и устройства ввода-вывода одновременно (параллельно) подключены к шине. Рисунок 10. Логическая структура обычного персонального компьютера Любое устройство ввода-вывода имеет управляющий элемент – контроллер. Контроллеры устройств ввода-вывода могут располагаться на материнской плате, плате расширения, подключаемой в разъем шины или входить в состав самого устройства. В случае расположения контроллера на материнской плате он связывается с устройством через соответствующий разъем (материнской платы). Контроллер не только управляет своим устройством ввода-вывода, но и обеспечивает доступ к шине для передачи данных. На доступ к шине могут одновременно претендовать процессор и несколько контроллеров устройств ввода-вывода. В таком случае специальная микросхема – «арбитр шины» определяет, кто получит доступ в данный момент. Обычно преимуществом пользуются устройства ввода- 23 вывода, в первую очередь по тому, что непредоставление им доступа может привести к потере данных. Таким образом, если устройства ввода-вывода не работают, то процессор может свободно обмениваться данными с памятью. Однако если одно из устройств работает, то оно будет запрашивать и получать доступ к шине всегда, когда это ему понадобится, снижая при этом производительность компьютера. Архитектура компьютера с одной шиной «ISA» (Industry Standard Architecture, промышленный стандарт шинной архитектуры) использовалась в персональных компьютерах с начала 80-х до середины 90- х годов 20 века. В момент ее появления элементы компьютера были еще достаточно медленными и не сильно отличались друг от друга по быстродействию. Поэтому архитектура была достаточно эффективна. Однако экспоненциальный рост производительности центральных процессоров, а также ускорение работы памяти и отдельных устройств ввода-вывода привели к тому, что шина ISA стала узким местом. Естественным желанием было бы заменить шину ISA на более эффективную, однако часть устройств ввода-вывода по-прежнему оставалась очень медленной, например, клавиатуры и принтеры, а пользователи не планировали отказываться от этих устройств. Решением в данном случае стало производство компьютеров с несколькими шинами, старой шиной ISA, для поддержки медленных устройств, и новой более производительной шиной PCI (Peripheral Component Interconnect – взаимодействие периферийных компонентов), разработанной компанией Intel. В наиболее распространенных реализациях шины PCI процессор не взаимодействует с основной памятью посредством этой шины. Вместо этого процессор подключается по выделенной высокоскоростной «шине памяти» непосредственно к контроллеру памяти. Таким образом, в данной конфигурации к шине PCI подключаются только периферийные устройства. В начале 20-го века шина PCI была заменена шиной PCI Express (сокращенно PCIe). И, как ранее с шиной ISA, многие современные компьютеры поддерживают и шину PCI (для подключения старых и медленных устройств), и шину PCIe (для новых и быстрых устройств). Архитектура шины PCIe представлена на рисунке 11. 24 Рисунок 11. Архитектура шины PCIe. Несмотря на похожее название, шина PCIe принципиально отличается от шины PCI в части организации связи между устройствами. Во-первых, по организации работы она ближе к вычислительным сетям, чем к шинам предыдущих поколений. Если процессор хочет обратиться к устройству, он не захватывает шину, а направляет этому устройству пакет данных. Пакет проходит через специальный коммутатор и достигает устройства, после чего осуществляется передача данных. Все устройства напрямую соединяются с коммутатором, образуя звезду. Во-вторых, для подключения устройств по стандарту PCIe используются двунаправленные последовательные соединения типа «точка- точка», имеющие разрядность 1 бит, и называемые «линиями». Для сравнения, в стандарте PCI все устройства параллельно подключались к 32- разрядной двунаправленной шине. За единицу времени (такт шины) по линии шины PCIe можно передать всего один бит информации, в то время как по 32-разрядной шине PCI сразу 32 бита. Фокус в том, что за счет простоты физического устройства линии шины PCIe удается существенно повысить тактовую частоту, то есть такт шины PCIe существенно меньше такта шины PCI. Максимальная тактовая частота шины PCI составляет 66 МГц. Если за один такт передается 32 бита информации, то скорость передачи составит 25 66 МГц * 32 бита = 2112 Мбит/с или 264 Мбайт/с. В момент своего появления шина PCIe обладала тактовой частотой около 2,5 ГГц. Это позволяло обеспечить скорость передачи в 2,5 ГГц * 1 бит = 2500 Мбит/с или 312,5 Мбайт/с по одной(!) линии. При этом устройства могут подключаться не по одной, а сразу по нескольким независимым линиям, что кратно увеличивает пропускную способность. В 2021 году ожидается обновление стандарта PCIe, в соответствии с которым тактовая частота может достигнуть 64 ГГц, а скорость передачи данных по одной линии шины – 7,877 Гбайт/с. Такая скорость необходима, например, для приложений, связанных с обработкой трехмерной графики. Это могут быть приложения, рассчитывающие математические модели или приложения дополненной или виртуальной реальности. 26 4. УСТРОЙСТВА ВВОДА-ВЫВОДА Клавиатуры Клавиатура – это устройство ввода информации, состоящее из упорядоченного набора кнопок (клавиш). Существует достаточно большое число видов клавиатур: мембранная, резиновая, резиномембранная, ёмкостная, механическая, магнитная и проекционная. В настоящий момент в отношении персональных компьютеров наибольшее распространение получили резиномембранные клавиатуры. Далее мы кратко рассмотрим их устройство. Можно сказать, что резиномембранная клавиатура имеет три основных слоя. Первый слой формируют клавиши, представляющие собой «крышечки», крепящиеся на вертикальные пластиковые стержни, с колпачком внизу. Второй слой формирует эластичный материал (резина или силикон) основная задача которого – предотвращать случайные соприкосновения элементов первого и третьего слоев. Третий слой представляет собой печатную плату, на которую нанесены токопроводящие дорожки. При нажатии клавиши стержень сначала соприкасается с материалом второго слоя, а затем продавливает его через специально предусмотренные для этого отверстия и замыкает контакты на печатной плате. При замыкании контактов на клавиатуре происходит «процедура прерывания» (операционной системе компьютера посылается сигнал о том, что она должна обработать внешнее событие) и операционная система запускает программу обработки прерывания, которая позволяет определить номер нажатой клавиши. При отпускании клавиши, вызывается новое прерывание. Например, если мы нажимаем и удерживаем клавишу SHIFT, а затем нажимаем и отпускаем клавишу «А», после чего отпускаем клавишу SHIFT , то операционная система будет считать, что мы хотим написать прописную букву «А». На рисунке 12 приведены элементы резиномембранной клавиатуры. Сенсорные экраны Сенсорный экран – это устройство ввода информации, представляющее собой реагирующий на прикосновение экран. Первый сенсорный экран был разработан сотрудником компании Royal Radar Establishment Эриком Джонсоном в Великобритании в 1965-м 27 году. В начале 70-х годов 20-го века преподаватель Самюэль Херст из Университета штата Кентукки впервые представил графический планшет с возможностью сенсорного ввода, а в 1975-м году он получил патент на резистивный сенсорный экран. Рисунок 12. Элементы резиномембранной клавиатуры. Рассмотрим принципы работы двух основных видов сенсорных экранов, получивших распространение в мобильных устройствах – резистивных и емкостных. Резистивный сенсорный экран состоит из двух основных слоев, разделенных слоем диэлектрика (изолятора). Верхний слой является гибким, поскольку на него должен нажимать пользователь, а нижний слой жестко закреплен на экране. Оба слоя содержат большое число проводников («проводков»). Для простоты можно считать, что на верхнем слое проводники расположены горизонтально, а на нижнем вертикально. При нажатии на экран проводники верхнего слоя соприкасаются (или сближаются) с проводниками нижнего слоя, что влияет на электрические параметры системы и позволяет определить область нажатия. Резистивные экраны обладают хорошей чувствительностью, а, кроме того, просты в изготовлении и достаточно дешевы, поэтому получили широкое распространение. 28 К минусам резистивных экранов можно отнести плохое светопропускание (что требует больших затрат на подсветку), невозможность определять силу нажатия, а также проблему «двоения». Последнюю проблему можно проиллюстрировать следующим примером. Представим, что на экране изображен квадрат, координаты вершин которого равны (0, 0), (0, 5), (5, 0) и (5, 5). При одновременном нажатии на вершины с координатами (0, 0) и (5, 5) будут изменяться параметры тех же проводников, что и при нажатии на вершины с координатами (0, 5) и (5, 0). Таким образом, эти ситуации оказываются неразличимыми. Распознавать несколько точек нажатия способны так называемые мультитач-экраны (multi-touch). Наибольшее распространение в планшетных компьютерах и смартфонах получили мультитач-экраны, созданные по проекционно-емкостной технологии. Как и резистивные, проекционно-емкостные сенсорные экраны состоят из двух разделенных диэлектриком слоев, нанесенных на стеклянную основу. Один из основных слоев содержит горизонтально расположенные проводники, а второй проводники, которые расположены вертикально. Проводники в сенсорном экране должны хорошо пропускать свет (быть прозрачными), поэтому они делаются из особого прозрачного сплава оксида индия и оксида олова. Приближенно можно считать, что проекционно-емкостной экран представляет собой множество конденсаторов (устройств, способных накапливать электрический заряд, в простом случае представляемое в виде двух пластин электродов, разделенных слоем диэлектрика), образовавшихся в местах пересечения горизонтальных и вертикальных проводников. Тело человека хорошо накапливает электрический заряд (вспомните свой жизненный опыт со статическим электричеством). Поэтому прикосновение пальцем (пальцами) к экрану изменяет емкость всех «конденсаторов» в области нажатия. Это изменение можно измерить, что позволяет определить координаты области нажатия. Проверьте, какой тип экрана у вашего смартфона? Будет ли он реагировать при прикосновении пальцем в резиновой перчатке или при прикосновении карандашом? Преимуществами проекционно-емкостных экранов являются высокая скорость отклика при касании, поддержка мультитач и возможность 29 определения силы нажатия. Этот вид экранов имеет большую надежность, что обеспечивает более продолжительный срок службы. К недостаткам экрана можно отнести возможность управления только пальцами, что, например, ограничивает возможности рисования, или специальными стилусами. Плоские мониторы Монитор – это устройство вывода информации, отображающее (визуализирующее) данные, полученные от других устройств компьютера. Необходимость создания плоских мониторов была обусловлена потребностью компактных решений для портативных устройств (не только ноутбуков или портативных компьютеров, но и, например, калькуляторов). Первые плоские мониторы были созданы на основе технологии жидких кристаллов в 60-х годах 20-го века. Их характеристики – компактность и небольшое потребление энергии позволили практически полностью отказаться от полногабаритных мониторов на основе электронно-лучевых трубок. На текущий момент жидкокристаллические мониторы остаются самыми распространенными в сегменте пользовательских компьютеров (не только для стационарных компьютеров и ноутбуков, но и для мобильных устройств, планшетов и смартфонов). Существует большое число различных модификаций технологии жидких кристаллов. Для простоты изложения, мы кратко опишем принцип работы монохромного (черно- белого) жидкокристаллического монитора. Работа цветных мониторов, основана на тех же принципах, но требует отдельной обработки красного, зеленого и синего цветов. Жидкие кристаллы – это молекулы, имеющие структуру кристалла, но при этом обладающие свойством текучести, как жидкости. Впервые они были открыты в Австрии ботаником и химиком Фридрихом Рейницером еще в 1888-м году. Если расположить жидкие кристаллы в одну линию, их оптические свойства будут зависеть от направления освящения и поляризации света. Воздействуя электрическим полем на линии жидких кристаллов, можно управлять интенсивностью пропускаемого ими света. Таким образом, можно делать некоторые области монитора более светлыми или темными. 30 Жидкокристаллический монитор состоит из ЖК-матрицы, источников света (для освещения матрицы изнутри), проводов (проводников) и корпуса. ЖК-матрица состоит из двух параллельных пластин из стекла или гибких полимерных материалов, между которыми в герметичном пространстве располагаются жидкие кристаллы. Поскольку жидкие кристаллы чувствительны к поляризации света, то на каждую пластину ЖК-матрицы наносится поляроид (поляризационный фильтр). Для управления состоянием жидких кристаллов к каждой пластине подключаются электроды. В итоге изображение строится путем воздействия различным напряжением в разных областях ЖК-матрицы. Общая структура жидкокристаллического монитора приведена на рисунке 13. Рисунок 13. Структура экрана на жидких кристаллах Мыши Мышь – это координатное устройство ввода информации, служащее для управления курсором и выбора команд из «выпадающих меню». Основная задача, которую решает мышь, состоит в обеспечении возможности указания определенной позиции на экране компьютера. При 31 движении мыши (например, при движении по столу или коврику) курсор на экране также перемещается, что позволяет наводить его на определенный элемент экрана. В состав мыши входят несколько кнопок, нажатие которых позволяет вызывать «меню» связанные с теми или иными элементами экрана и делать выбор команд из имеющегося перечня (меню). Исторически существовало несколько видов мышей: механические, оптические и оптомеханические, однако оптические мыши фактически вытесни все остальные виды. Поэтому мы кратко рассмотрим только устройство победившего вида. В нижней части современной оптической мыши располагаются светодиод (или полупроводниковый лазер) и очень маленькая и быстрая видеокамера. Эта видеокамера снимает несколько тысяч кадров в секунду с разрешением от 16 х 16 до 40 х 40 пикселей. Сравнение нескольких снятых соседних кадров позволяет определить направление перемещения мыши и величину смещения. Освещение поверхности светодиодом позволяет облегчить решение последней задачи. Обычно при прохождении мышью определенного расстояния (например, 0,3 мм) компьютеру передается последовательность из нескольких байт, в которой передается информация о смещении мыши по оси Ox и по оси Oy, а также информация о состоянии кнопок мыши (например, нажаты они или нет). Информация о перемещениях мыши и состоянии ее кнопок обрабатывается низкоуровневым программным обеспечением (входящим в состав операционной системы), при этом информация об относительных движениях служит для определения позиции на экране, в которой должен появиться курсор. Если кнопка мыши нажата, то зная положение курсора на экране, компьютер может вычислить какой элемент должен быть выбран. Принтеры В этом параграфе мы кратко рассмотрим только наиболее часто используемые черно-белые лазерные принтеры. Принтер – это устройство вывода текстовой или графической информации на твёрдый физический носитель (обычно бумагу, но, возможно, ткань или полимер). Лазерные принтеры Схема работы лазерного принтера показана на рисунке 14. 32 Рисунок 14. Схема работы лазерного принтера Основной частью принтера является вращающийся фотобарабан. Перед печатью новой страницы фотобарабан «электризуется» (на него буквально наносят заряженные частицы). Затем поверхность барабана освещается лазером, таким образом, что формируется линия, состоящая из освещенных и неосвещенных лучом лазера точек. Точки, освещенные лазером, разряжаются. После того как линия создана фотобарабан поворачивается для формирования следующей линии. Далее линия достигает магнитного вала, к поверхности которого притягиваются частицы тонера. Тонер притягивается к заряженным точкам на фотовале. Таким образом, на фотовале проявляется невидимое до этого изображение. Теперь линия с тонером приближается к бумаге. Ролик переноса заряжает листы бумаги и тонер притягивается к ним, аналогично тому, как 33 ранее притягивался к фотовалу. Затем лист с тонером проходит через термовал, расплавляющий тонер и тем самым закрепляющий изображение на бумаге. После этого фотобарабан разряжается и очищается от остатков тонера. Цикл повторяется. Кроме уже упомянутых элементов в состав лазерного принтера входит контроллер и до нескольких гигабайт памяти для хранения печатаемых изображений и различных шрифтов, которые могут быть встроенными или загружаться из памяти компьютера. Принтеры могут получать печатаемые изображения в битовом представлении, но большинство управляются командами специализированных языков описания страниц, например, PostScript от Adobe. Веб-камеры Веб-камера – это цифровая видео или фотокамера, способная в реальном времени фиксировать изображения реальных объектов на матрице светочувствительных элементов. Как устроена и как работает Веб-камера? В состав веб-камеры входят следующие элементы: объектив, оптический фильтр, ПЗС-матрица, плата видеозахвата (блок оцифровки), процессор, включающий модуль сжатия видеоизображения, оперативная память и флэш-память, сетевой или USB интерфейс и, возможно, другие интерфейсы. Схема веб-камеры приведена на рисунке 15. Объектив веб-камеры, обычно сфокусирован на определённое расстояние съёмки, которое нельзя изменить (фикс-фокус). Объектив представляет собой систему линз (возможно с некоторыми дополнительными элементами), которая собирает отраженный от объекта съемки свет и формирует изображение на матрице светочувствительных элементов. Многие технические характеристики веб-камеры, такие как фокусное расстояние, уровень и характер оптических искажений, разрешающая способность зависят от объектива камеры. Оптические фильтры имеют вид плоских параллельных пластинок и предназначены для обеспечения качественной цветопередачи, корректировки цвета, изменения яркости и контрастности фотографируемых объектов. 34 Рисунок 15. Устройство цифровой камеры В отличие от аналоговых («пленочных») фотоаппаратов или камер, в которых носителем изображения выступала фотопленка, в цифровой веб- камере носителем изображения является матрица светочувствительных элементов – фотодиодов. Матрица может быть выполнена на основе различных технологий, из которых мы коротко рассмотрим только с технологию приборов с зарядовой связью (ПЗС, Charge-Coupled Devices, CCD). При попадании света из объектива на ПЗС-элемент матрицы в нем формируется электрический заряд, который затем «считывается» и преобразуется блоком оцифровки в натуральное число. Один ПЗС-элемент дает, таким образом, ровно одно натуральное число. Для формирования цветных изображений устройства CCD объединяются в группы из четырех элементов. Поверх группы размещается фильтр Байера (Bayerfilter), который делает одно устройство CCD чувствительным к красному цвету, другое — к синему, а два оставшихся — к зеленому. Фильтр Байера можно представлять в виде квадратной плетки разделенной на 4 равных квадрата, из которых один синий, один красный и 35 два зеленых. Наличие двух зеленых фильтров объясняется особенностями человеческого световосприятия. При включении камеры специальный контроллер определяет количество света, попадающего на матрицу, и проводит балансировку белого. Балансировка белого позволяет скорректировать цвета изображения, чтобы привести их к цветам, наблюдаемым человеком в естественных условиях (или до желаемых им цветов). После этого изображение считывается с ПЗС-матрицы и сохраняется во встроенной оперативной памяти камеры. Далее изображение или группа изо?