Урок 8
Понятие программного обеспечения и его типы. Назначение операционной системы и ее основные функции
§9. Программное обеспечение компьютера
§10. 0 системном ПО и системах программирования
Программное обеспечение компьютера
Основные темы параграфа:
— что такое программное обеспечение;
— типы программного обеспечения;
— состав прикладного программного обеспечения.
Изучаемые вопросы:
— Понятие программного обеспечения.
— Типы программного обеспечения
— Состав прикладного программного обеспечения.
— Системное программное обеспечение и функции операционной системы.
— Понятие интерактивного режима работы.
— Сервисные программы.
— Система программирования – инструмент для работы программиста.
Что такое программное обеспечение
Возможности современного ПК столь велики, что все большее число людей находят ему применение в своей работе, учебе, быту. Важнейшим качеством современного компьютера является его «дружественность» по отношению к пользователю. Общение человека с компьютером стало простым, наглядным, понятным. Компьютер сам подсказывает пользователю, что нужно делать в той или иной ситуации, помогает выходить из затруднительных положений. Это возможно благодаря программному обеспечению компьютера.
Снова воспользуемся аналогией между компьютером и человеком. Новорожденный человек ничего не знает и не умеет. Знания и умения он приобретает в процессе развития, обучения, накапливая информацию в своей памяти. Компьютер, который собрали на заводе из микросхем, проводов, плат и прочего, подобен новорожденному человеку. Можно сказать, что загрузка в память компьютера программного обеспечения аналогична процессу обучения ребенка.
Создается программное обеспечение программистами.
Вся совокупность программ, хранящихся на всех устройствах долговременной памяти компьютера, составляет его программное обеспечение (ПО).
Программное обеспечение компьютера постоянно пополняется, развивается, совершенствуется. Стоимость установленных программ на современном ПК зачастую превышает стоимость его технических устройств. Разработка современного ПО требует очень высокой квалификации от программистов.
Типы программного обеспечения
В программном обеспечении компьютера есть необходимая часть, без которой на нем просто ничего не сделать. Она называется системным программным обеспечением. Основным элементом системного ПО является операционная система (например, Windows, Linux). Покупатель приобретает компьютер, оснащенный системным ПО, которое не менее важно для работы компьютера, чем память или процессор. Кроме системного ПО в состав программного обеспечения компьютера входят еще прикладные программы и системы программирования .
Программное обеспечение компьютера делится на:
— системное ПО;
— прикладное ПО;
— системы программирования.
О системном ПО и системах программирования речь пойдет позже. А сейчас познакомимся с прикладным программным обеспечением.
Состав прикладного программного обеспечения *
* В сфере ПО все очень быстро меняется, поэтому невозможно дать точную и неизменную классификацию.
Некоторые современные программы трудно отнести к какому-то одному из описанных ниже типов.
Программы, с помощью которых пользователь может решать свои информационные задачи, не прибегая к программированию, называются прикладными программами.
В комплекте с операционной системой обычно поставляется набор прикладных программ общего назначения. В Windows это группа программ «Стандартные» (простые текстовые и графические редакторы, калькулятор и др.), программа электронной почты и интернет-браузер. К числу программ общего назначения можно отнести также офисные, мультимедийные и развлекательные программы. В Linux такие программы распределены по группам в соответствии с их назначением.
Офисные программы. Как правило, пользователь, приобретая компьютер, устанавливает на нем офисный пакет программ. К таким программам относятся:
• текстовые процессоры — для работы с текстовыми документами;
• табличные процессоры, позволяющие организовывать очень распространенные на практике табличные расчеты;
• программы для создания презентаций — демонстрационного видеоряда, используемого для публичных выступлений;
• программы для управления несложными базами данных.
Мультимедийные программы. Это программы общего назначения, предназначенные для работы с изображением и звуком. К ним относятся графические редакторы, позволяющие рисовать, обрабатывать фотографии, делать фотомонтаж. Программы-проигрыватели звука и изображения позволяют вывести на экран картинку, прослушать музыкальную запись, посмотреть видеофильм. Обработкой звука на компьютере, как правило, занимаются профессионалы, используя для этого специальные программные пакеты.
Развлекательные программы. Многие пользователи начинают свое общение с компьютером с компьютерных игр.
Профессиональные программы. Это прикладные программы специального назначения — инструменты профессиональной деятельности. Например, бухгалтерские программы применяются для автоматизированного начисления заработной платы и других расчетов, которые производятся в бухгалтериях; системы автоматизированного проектирования используются конструкторами для разработки проектов различных технических устройств; программы, позволяющие решать сложные математические задачи, применяются учеными и инженерами; медицинские экспертные системы помогают врачу ставить диагноз больному и многое другое.
Образовательные программы. Это также программы специального назначения. К образовательным программам относятся электронные учебники, учебные тренажеры. Нередко для целей обучения используется игровая форма. Особенно популярно такое совмещение для детей младшего возраста.
Коротко о главном
Программное обеспечение компьютера делится на три части: системное ПО, прикладное ПО и системы программирования.
С помощью прикладных программ пользователь может непосредственно решать свои информационные задачи, не прибегая к программированию.
К прикладному ПО относятся: офисные, мультимедийные, развлекательные и образовательные, профессиональные и другие программы.
Вопросы и задания
1. Что такое программное обеспечение компьютера?
2. Какие задачи выполняет прикладное программное обеспечение?
3. Назовите основные виды прикладных программ общего назначения.
4. Что такое прикладные программы специального назначения?
О системном ПО и системах программирования
Основные темы параграфа:
— что такое операционная система;
— интерактивный режим;
— сервисные программы;
— системы программирования.
Изучаемые вопросы:
— Понятие программного обеспечения.
— Типы программного обеспечения
— Состав прикладного программного обеспечения.
— Системное программное обеспечение и функции операционной системы.
— Понятие интерактивного режима работы.
— Сервисные программы.
— Система программирования – инструмент для работы программиста.
Что такое операционная система
Для чего нужны прикладные программы, понять несложно. А что же такое системное программное обеспечение?
Главной частью системного программного обеспечения является операционная система (ОС).
Операционная система — это набор программ, управляющих оперативной памятью, процессором, внешними устройствами и файлами, а также ведущих диалог с пользователем.
У операционной системы очень много работы, и она практически все время находится в рабочем состоянии. Например, для того чтобы выполнить прикладную программу, ее нужно разыскать во внешней памяти (на диске), поместить в оперативную память (найдя там свободное место), начать исполнение программы, контролировать работу всех устройств компьютера во время выполнения и в случае сбоев выводить диагностические сообщения. Все эти заботы берет на себя операционная система.
Вот названия некоторых распространенных ОС для персональных компьютеров: Windows, Linux, Mac OS.
Интерактивный режим
Операционная система общается с пользователем через определенную диалоговую среду (оболочку), отражаемую на экране: «Рабочий стол», файл-менеджер и пр. Желая выполнить какое-то действие, пользователь передает ОС соответствующую команду, воздействуя на элементы диалоговой среды. Например, это может быть команда запуска прикладной программы, команда выполнения операции с файлами (удалить файл, скопировать и пр.), команда сообщения текущего времени или даты, команда перезагрузки компьютера. После завершения выполнения данного этапа работы операционная система переходит в состояние ожидания следующей команды от пользователя.
Такой режим работы называется диалоговым режимом. Благодаря ОС пользователь никогда не чувствует себя брошенным на произвол судьбы. Все операционные системы на персональных компьютерах работают с пользователем в режиме диалога. Режим диалога часто называют интерактивным режимом.
Сервисные программы
К системному программному обеспечению кроме ОС следует отнести и множество программ обслуживающего, сервисного характера. Например, это программы обслуживания дисков (копирование, форматирование, «лечение» и пр.), сжатия файлов на дисках (архиваторы), борьбы с компьютерными вирусами и многое другое.
Компьютерным вирусом называют вредоносный программный код, способный нанести ущерб данным на компьютере или вывести его из строя. Основными разносчиками вирусов являются: нелицензионное программное обеспечение, файлы, скопированные из случайных источников, а также глобальная компьютерная сеть Интернет. Борьбой с компьютерными вирусами занимаются специалисты, создающие антивирусные программы.
В составе программного обеспечения компьютера обязательно должны присутствовать антивирусные программы. Однако такую программу недостаточно лишь однажды установить на компьютер. После этого нужно регулярно обновлять ее базу — добавлять настройки на новые типы вирусов. Наиболее оперативно такое обновление производится через Интернет серверами фирм-производите- лей антивирусных программ.
Системы программирования
Кроме системного и прикладного ПО существует еще третий вид программного обеспечения. Он называется системами программирования (СП).
Система программирования — это комплекс инструментальных средств, предназначенных для работы с программами на одном из языков программирования.
С системами программирования работают программисты. Они разрабатывают компьютерные программы. Всякая СП ориентирована на определенный язык программирования. Существует много разных языков, например Паскаль, Бейсик, ФОРТРАН, С («Си»), Ассемблер, ЛИСП и др. На этих языках программист пишет программы, а с помощью систем программирования заносит их в компьютер, отлаживает, тестирует, исполняет.
Программисты создают все виды программ: системные, прикладные и новые системы программирования.
Коротко о главном
Системное программное обеспечение — обязательная часть ПО. Его ядро составляет операционная система (ОС). ОС непосредственно связана с аппаратурой и управляет ее работой, организует работу с файлами, ведет диалог с пользователем.
К сервисным программам относятся программы обслуживания дисков, архиваторы, антивирусные программы и др.
Системы программирования — инструменты для работы программистов.
Вопросы и задания
1. Какие разновидности программного обеспечения имеются на современных компьютерах? Подготовьте сообщение.
2. Что такое операционная система (ОС)? Какие основные функции она выполняет?
3. Что такое диалоговый режим общения между ОС и пользователем?
4. Для чего предназначены системы программирования? Кто с ними работает?
Электронное приложение к уроку
Вернуться к материалам урока | |
Презентации, плакаты, текстовые файлы | Ресурсы ЕК ЦОР |
Видео к уроку |
Cкачать материалы урока
Компьютерная грамотность с Надеждой
Заполняем пробелы — расширяем горизонты!
Что такое системное программное обеспечение
Персональный компьютер представляет собой сложное устройство, состоящее из множества различных электронных компонентов. В сумме все они образуют аппаратное обеспечение или «железо», для управления которого требуется какое-то нематериальное составляющее, которым и является системное программное обеспечение.
Что такое системное программное обеспечение
Без программ компьютерное устройство будет выглядеть никому не нужной грудой железа. Все это относится к ноутбукам, нетбукам, мобильным устройствам и прочей компьютерной аппаратуре.
Системное программное обеспечение включает в себя все программы, работающие c аппаратной конфигурацией (т.е. с «железом»). Поэтому главной задачей системного программного обеспечения является управление аппаратными компонентами компьютера (оперативной памятью, процессором, принтером, сканером, мультимедиа адаптером, клавиатурой, мышкой и пр.)
Иногда под понятием «системное программное обеспечение персонального компьютера» подразумевают операционную систему, что не совсем верно. Операционная система является лишь частью системного программного обеспечения, но не единственной его частью и не полным аналогом системного ПО.
Системное программное обеспечение – это своеобразная «прослойка» между аппаратными составляющими компьютера и программными приложениями.
В современных компьютерных системах ни одно из запущенных программных приложений не может непосредственно вступать во взаимодействие с аппаратными компонентами, как было во времена MS-DOS, когда подобный подход преобладал.
Теперь требуется, чтобы приложение отвечало определенным правилам, и было запрограммировано специально для используемой системы. Как раз по этой причине программы, созданные для ОС Windows, не могут функционировать в системе Linux или Mac и, соответственно, наоборот.
Системное программное обеспечение может управлять любым аппаратным компонентом при помощи команд, поступающих от прикладных приложений.
Драйверы устройств
В системное программное обеспечение входят драйверы устройств, программы управления процессором, оперативной памятью, сетевым оборудованием, другими внешними и внутренними устройствами, такими как принтеры, сканеры, внутренние и внешние жесткие диски, CD-, DVD-устройства и пр.
При переходе с Windows XP на Windows 7 у меня напрочь перестал работать принтер по той причине, что старый драйвер для принтера (под Windows XP) не подошел к новой операционной системе, подробнее об этом здесь.
Как правило, пользователи ПК не сталкиваются «напрямую» с системным программным обеспечением. Разве что при поиске и установке очередного драйвера, когда нужно подключить к компьютеру новое внешнее устройство.
Системное программное обеспечение работает хорошо и устойчиво, как раз если его присутствия не замечает пользователь ПК.
Если же пользователь постоянно должен помнить о системном программном обеспечении, то это является свидетельством того, что в компьютере что-то идет не так, что-то не так настроено, что-то не так работает.
Особенности работы с системным программным обеспечением
Обычным пользователям ПК не рекомендуется слишком увлекаться системным программным обеспечением. Поскольку работа с системным программным обеспечением требует хороших знаний устройства ПК, принципов работы его отдельных блоков и узлов. Требует понимания связей между устройствами ПК, понимания характера их взаимодействия друг с другом.
К тому же системное программное обеспечение сильно «привязано» к конкретному компьютеру с его конкретными устройствами.
Системное программирование, которое заключается в создании системного программного обеспечения есть удел системных программистов, которые специализируются исключительно на создании, отладке и корректировке системного ПО.
Прикладное программное обеспечение: что это
Кроме системных программистов, есть прикладные программисты, в задачи которых входит использование на практике, разработка, отладка и адаптация прикладного программного обеспечения.
Кстати, я в свое время работала прикладным программистом. И хочу сказать, что писать программы для людей иногда сложнее (в первую очередь, по эмоциональному накалу), чем для «железа».
Исходя из разделения программного обеспечения на системное и прикладное, уже стало определенным стандартом, что обычный пользователь хранит на своем ПК системное программное обеспечение (операционную систему и драйверы) на системном диске C:, а свои наработки, тексты, таблицы, рисунки, фото — на диске D:. Такое разделение позволяет при возникновении проблем с операционной системой на диске C: сохранить пользователю все, что им «нажито непосильным трудом» на диске D:. Хотя про архивацию в любом случае нужно помнить.
Итоги
Системное программное обеспечение не является единственным типом программ, существует также еще и прикладное программное обеспечение.
Обычному пользователю ПК, не претендующему на роль прикладного программиста, нужно лишь прикладное программное обеспечение для запуска и выполнения приложений (редакторы текстов и графики, просмотры изображений, прослушивание музыки, просмотр фильмов, поиск информации в Интернете и пр.).
Прикладное программное обеспечение определяют программы для запуска и выполнения приложений. К примеру, чтобы работать с графикой, необходимо использовать графический редактор, для работы с текстовыми документами – текстовый редактор и т.д. Но это, как говорится, уже тема для другой статьи, статьи о прикладном программном обеспечении ПК.
Видео: Что такое ПО на компьютере и на телефоне. Примеры
P.S. Еще почитать по компьютерной грамотности:
Опубликовано 19 января 2014
Последнее обновление 6 марта 2022
Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков
Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.
Добавить комментарий Отменить ответ
Комментарии: 12 к “Что такое системное программное обеспечение”
Надежда,не знаю,что делала,но вдруг исчез Interner Explorer (у меня Win XP) Написано — страница пустая .Открывается только избранное,которое я себе оставляла.
Да, я еще установила Google ,он открывается пока хорошо.Спасибо
Здравствуйте, Раиса. Компания Microsoft предлагает это сделать так, как описано на их официальном сайте, на странице //support.microsoft.com/ru-ru/kb/902932 после заголовка «Самостоятельно решение проблемы».
Лично я не борюсь с этой проблемой, хотя у меня она тоже есть.
Отнесение того или иного программного обеспечения к системному условно, и зависит от соглашений, используемых в конкретном контексте. Как правило, к системному программному обеспечению относятся операционные системы
Провентилируйте пожалуйста вопрос «Теневая копия тома»(в «Справке» об этом 0). Хотел создать «Образ системы» на внешнем жестком диске и не смог. Открыл скрытые устройства и пришел в ужас — 11 теневых копий тома уже не лезут в созданный на внешнем накопителе Том по объёму
Кривые форточки Мелкософта как всегда сначала напишут одно число, а потом «обрадуют» другим :)))
Чем отличаются драйверы от программ управления по сути? Возможностью настраивать последние?
Надя. В текст вкралась неприметная смысловая ошибочка, которая порвёт в клочья логику пенсам.
На мой взгляд д. б. так:
В системное программное обеспечение входят:
1 драйверы устройств;
2 программы управления:
*а) процессором
*б) оперативной памятью
*в) сетевым оборудованием(маршрутизатор, роутер…)
*г) внутренними и внешними жесткими дисками
*д) CD-, DVD-устройствами(дисковод, виртуальный дисковод)
*е) принтерами и сканерами
*ё) мониторами и пр.(зарядка и разрядка батареи аккумулятора в ноутбуке…)
Может я не прав?
Добрый день! Я поддерживаю инициативу Наума. Вы должны дать краткие инструкции для лиц пожилого возраста. Кстати ваши рекомендации интересны и опытным пользователям. Всё знать невозможно. Какие бы справки в помощь я не смотрела, ваши объяснения лучше. Всё сразу укладывается в голову.
С уважением Надежда.
спасибо за полезные советы!
Спасибо. Присоединяюсь к пожеланиям Наума Держать в руках книгу и понимать её содержание многого стоит.
Спасибо.
Уважаемая Надежда!
Если позволите, я хочу кое-что предложить.Не знаю или Вам понравится, но я все-таки осмелюсь написать. У Вас универсальные компьютерные знания.Ваша «компьютерная граммотность» написана очень просто и доходчиво даже таким «старым чайникам» как я.
Напишите, пожалуйста, специально для лиц пожилого возраста краткое руководство например под названием «Компьютерный ликбез.» Вы спросите что обозначает слово «ликбез». На заре советской власти,когда значительная часть населения была неграммотна, была выдвинута программа ликвидации этой неграммотноси и называлась она»ликбез» Нам, старикам, очень памятен этот период и понятно это сокращение.
В этой книге не надо охватывать все тонкости компьютерной граммотности.
Написать коротко, доходчиво и самое необходимое.
Мы,пенсионеры, не собираемся стать программистами.Что нам надо знать-вы лучше меня знаете.
И еще. В 1913 году Яков Перельман издал первую книгу, которая положила начало серии книг «Занимательных наук»:Занимательная физика,математика,химия и т.д. и даже занимательное пчеловодство.
Почему не положить начало серии под названием «Занимательный компьютер»,»занимательный интернет», «занимательная электронная почта» и т.д.Я думаю, что Ваши знания и умение просто и доходчиво работать с материалом легко справятся с этим. Вам это под силу.Желательно, чтобы
книжки были красочные и дешевые.
Многие пенсионеры пишут мемуары,воспоминания,истории и т.д. Издать в настоящее время книгу-очень дорогое удовольствие и почти невозможное.Это из моего опыта.пожалуйста включите в лекции по компьютерной граммотности раздел «как издать электронную книг».
извините, .Наверное, я занял много вашего времени.
С глубоким уважением.
Наум Коряк.
Филадельфия. США
Уважаемый Наум, благодарю за обстоятельный комментарий. Я тоже думаю о таких вещах, про которые Вы пишите, надо бы делать.
Надежда! Спасибо! Познавательно. Вы правильно подметили,что «обычному пользователю нужно лишь прикладное программное обеспечение для запуска и выполнения Приложений». А с этим у начинающих пользователей еще много проблем, которые постараемся решать с Вашей помощью.
Уважаемые читатели, рада Вас видеть! Меня зовут Надежда.
Задайте свой вопрос здесь: Спросить. Мой ответ придет на почту, указанную вами.
Из чего состоит центральный процессор?
Центральный процессор часто называют «мозгом» компьютера, ведь он, как и человеческий мозг, состоит из нескольких частей, собранных воедино для работы над информацией. Среди них есть те, что отвечают за прием информации, ее хранение, обработку и вывод. В этой статье портал TechSpot разбирает все ключевые элементы процессора, за счет которых и работают ваши компьютеры.
Этот текст входит в серию статей, в которых тщательно разбирается работа ключевых компонентов компьютера. Кроме того, если вы заинтересовались темой, рекомендуем ознакомиться с переводами статей серии «Как разрабатываются и создаются процессоры?».
В этой статье будут затронуты как основы работы процессоров, так и более сложные понятия. К сожалению, без некоторой абстрактности не обойтись, но на это есть свои причины. К примеру, если взглянуть на блок питания, можно легко рассмотреть все его части — от конденсаторов до транзисторов, однако в случае с процессорами все не так просто, ведь мы физически не можем разглядеть все микросхемы, а Intel и AMD не спешат делиться подробностями работы своей продукции с широкой публикой. Тем не менее, информация, представленная в статье, применима к подавляющему большинству современных процессоров.
Итак, приступим. Любому вычислительному устройству нужно нечто наподобие центрального процессора. По сути, программист пишет код для выполнения собственных целей, а затем процессор выполняет его для получения необходимого результата. Процессор также подключен к другим частям системы, вроде памяти и устройств ввода/вывода, чтобы обеспечить загрузку необходимых данных, но в этой статье мы не будем акцентировать на них внимание.
Фундамент любого процессора: архитектура набора команд
Первое, на что натыкаешься при разборе любого процессора — это на архитектуру набора команд (ISA). Архитектура является чем-то вроде фундамента работы процессора и именно от нее зависит то, как он работает и как все внутренние системы взаимодействуют друг с другом. Существует огромное количество архитектур, но самыми распространенными являются x86 (преимущественно в стационарных компьютерах и ноутбуках) и ARM (в мобильных устройствах и встроенных системах).
Чуть менее распространенными и более нишевыми являются MIPS, RISC-V и PowerPC. Архитектура набора отвечает за ряд основных вещей: какие инструкции процессор может обрабатывать, как он взаимодействует с памятью и кэшем, как задача распределяется по нескольким этапам обработки и др.
Чтобы лучше понять устройство процессора, разберем его элементы в том порядке, по которому выполняются команды. Различные типы инструкций могут следовать разными путями и использовать разные компоненты ЦП, поэтому здесь они будут обобщены, чтобы охватить максимум. Начнем с базового дизайна одноядерных процессоров и постепенно будем переходить к более продвинутым и сложным экземплярам.
Блок управления и исполнительный тракт
Элементы процессора можно разделить на два основных: блок управления (он же — управляющий автомат) и исполнительный тракт (он же — операционный автомат). Говоря простым языком, процессор — это поезд, в котором машинист (управляющий автомат) управляет различными элементами двигателя (операционного автомата).
Исполнительный тракт подобен двигателю и, как следует из названия, это путь, по которому данные передаются при их обработке. Он получает входные данные, обрабатывает их и отправляет в нужное место после завершения операции. Блок управления, в свою очередь, направляет этот поток данных. В зависимости от инструкции, исполнительный тракт будет направлять сигналы к различным компонентам процессора, включать и выключать различные части пути, а также отслеживать состояние всего процессора.
Блок-схема работы базового процессора. Черными линиями отображен поток данных, а красными — поток команд.
Цикл выполнения команд — Выборка
Первое, что должен сделать процессор — определить, какие команды необходимо выполнить следующими, а затем переместить их из памяти в блок управления. Команды создаются компилятором и зависят от архитектуры набора (ISA). Наиболее распространенные типы базовых инструкций (например, «загрузка», «хранение», «сложение», «вычитание» и др.) общие для всех ISA, но существует множество дополнительных, специальных типов команд, уникальных для конкретной архитектуры набора. Блок управления знает, какие сигналы и куда нужно направить для выполнения определенного типа команды.
К примеру, при запуске .exe файла в Windows, код этой программы отправляется в память и процессор получает адрес, с которого начинается первая команда. Процессор всегда поддерживает внутренний реестр, отслеживающий откуда должна будет выполняться следующая команда. Этот реестр называется счетчиком команд.
После того, как процессор определил точку, с которой нужно начинать цикл, происходит перемещение команды из памяти в вышеупомянутый реестр — этот процесс называется выборкой команды. По-хорошему, команда, скорее всего, уже находится в кэше процессора, но этот вопрос будет рассмотрен чуть позже.
Цикл выполнения команд — Декодирование
Когда процессор получает команду, ему нужно точно определить тип этой команды. Данный процесс называется декодированием. Каждая команда обладает особым набором битов, опкодом, который дает возможность процессору распознать ее тип. Примерно по тому же принципу работает распознавание компьютером различных расширений файлов. К примеру, .jpg и .png — форматы изображений, но каждый из них обрабатывает данные по-разному, поэтому компьютеру и нужно точно распознавать их тип.
Стоит отметить, что сложность декодирования может зависеть от того, насколько продвинутой является архитектура набора команд процессора. У архитектуры RISC-V, к примеру, несколько десятков команд, а у x86 — несколько тысяч. У типичного процессора Intel x86 процесс декодирования является одним из сложнейших и занимает огромное количество памяти. Чаще всего процессоры декодируют команды, связанные с памятью, арифметическими вычислениями и переходом.
3 основных типа команд
Команда памяти может представлять собой нечто вроде «прочтите значение из адреса памяти 1234 вместо значения А» или «запишите значение Б в адрес памяти 5678». Арифметические команды имеют вид в духе «добавьте значение А к значению Б и сохраните результат в значении В». Инструкции перехода, в свою очередь, похожи на «выполните этот код, если значение В положительное, или выполните другой код, если значение В отрицательное». Зачастую в программах используется цепочка сразу из нескольких вышеупомянутых примеров, из-за чего конечный результат выглядит примерно так: «добавьте значение адреса памяти 1234 к значению адреса памяти 5678 и сохраните его в адресе памяти 4321, если результат положительный, либо в адрес 8765, если результат отрицательный».
Перед тем, как перейти к выполнению декодированной команды, давайте уделим немного внимания регистрам.
Регистрами называются немногочисленные, но крайне быстрые фрагменты памяти процессора. У 64-битных процессоров каждый из них вмещает 64 бита, а всего их может быть несколько десятков на одно ядро. Регистры используются для хранения используемых в данный момент значений и их можно считать чем-то вроде кэша нулевого уровня. В приведенных выше примерах команд значения А, Б и В будут сохранены именно в регистре.
Арифметико-логическое устройство
Вернемся к этапу выполнения команд. Сразу отметим, что он отличается для всех трех вышеупомянутых типов команд, поэтому давайте рассмотрим каждый их них.
Самыми простыми для понимания являются арифметические команды. Эти команды отправляются в арифметическо-логическое устройство (ALU) для последующей обработки. Устройство представляет собой цепь, которая чаще всего работает с двумя значениями, отмеченными сигналом, и выдает результат.
Представьте себе обычный калькулятор. Для любого вычисления вы вводите значения, выбираете необходимую арифметическую операцию и получаете результат. Арифметическо-логическое устройство (ALU) работает по похожему принципу. Тип операции зависит от опкода команды, который управляющий автомат отправляет в ALU и которое в дополнение к базовой арифметике может производить со значениями такие битовые операции, как AND, OR, NOT и XOR. Кроме того, арифметическо-логическое устройство выводит информацию о проведенном вычислении для управляющего автомата (например, оказалось ли оно положительным, отрицательным, равным нулю или вызвало переполнение).
Несмотря на то, что арифметическо-логическое устройство чаще всего связано именно с арифметическими операциями, оно находит свое применение и в инструкциях памяти или перехода. Например, если процессору нужно вычислить адрес памяти, заданный в результате прошлого вычисления, либо в случае необходимости вычислить переход для добавления в счетчик программ, если инструкция того требует (пример: «если предыдущий результат отрицателен, перейти на 20 команд вперед»).
Команды и иерархия памяти
Чтобы лучше понять принцип работы команд, связанных с памятью, стоит обратить внимание на концепцию иерархии памяти — связь между кэшем, оперативной памятью и главным запоминающим устройством. Когда процессор работает с командой памяти, данных о которой у него еще нет в регистре, он будет продвигаться по иерархии памяти, пока не найдет нужную информацию. Большинство современных процессоров имеют три уровня кэша: первый, второй и третий. Сначала процессор проверит наличие необходимых команд в кэше первого уровня — самом маленьком и быстром из всех. Зачастую этот кэш разделен на две части: первая отведена под данные, а вторая — под команды. Помните, команды извлекаются процессором из памяти так же, как и любые другие данные.
Типичный кэш первого уровня может состоять из нескольких сотен килобайт. Если процессор не найдет в нем то, что нужно, то перейдет к проверке кэша второго уровня (размером в несколько мегабайт), а затем — третьего (уже занимающего десятки мегабайт). В случае, если необходимых данных не будет и в кэше третьего уровня, то поиск будет производиться в оперативной памяти, а затем в накопителях. С каждым подобным «шагом», увеличивается не только объем доступных данных, но и задержка.
После того, как процессор нашел необходимые данные, он отправляет их вверх по иерархии памяти для сокращения время поиска, на случай, если они понадобятся в дальнейшем. Для справки: процессор может считывать данные во внутреннем регистре всего за один-два цикла, в кэше первого уровня понадобится немногим больше, в кэше второго уровня уже около десяти, а третьего — несколько десятков циклов. Если приходится задействовать память или накопители, то процессору может понадобятся десятки тысяч, а то и миллионы циклов. В зависимости от системы, у каждого ядра процессора может быть собственный кэш первого уровня, общий с другим ядром кэш второго уровня и кэш третьего уровня у группы из четырех или более ядер. Более подробно речь о многоядерных процессорах пойдет позже.
Команды перехода и ветвления
Последняя из трех основных типов команд — это команда ветвления. Команды современных программ постоянно переходят с одного потока процессов на другой, а это значит, что процессор крайне редко выполняет более дюжины смежных команд без перехода. Команды ветвления происходят от элементов программирования, таких как код IF, FOR и RETURN. Все они используются для прерывания выполнения программы или переключения на другую часть кода. Кроме команд ветвления существуют и команды перехода, которые отличаются от первых тем, что они всегда участвуют в процессе выполнения программы.
Кроме обычных команд перехода, существуют и условные переходы, с которыми процессору работать особенно сложно, поскольку он может выполнять несколько инструкций одновременно и конечный результат всей ветки может быть нельзя определить пока не начата работа над выполнением связанных команд.
Чтобы понять, почему процессору трудно работать с условными переходами, стоит обратить внимание на такое понятие, как вычислительный конвейер. Каждый шаг в выполнении какой-либо команды может занимать несколько циклов, а это значит, что арифметико-логическое устройство могло бы простаивать без дела пока происходит выборка команды. Чтобы максимизировать эффективность вычислительной мощности процессора, каждая стадия разделяется на несколько частей — в процессе, который называется вычислительным конвейером (конвейерной обработкой).
Самой простой аналогией будет процесс стирки. Предположим, что у вас достаточно вещей на две полные загрузки стиральной машины, а стирка и сушка каждой партии занимает по часу. Вы вполне можете загрузить в стиральную машину первую партию вещей, а потом переместить на сушилку, а когда они высохнут — заняться второй партией. Это займет четыре часа. Однако, если вы разделите процесс на этапы и начнете стирку второй партии вещей, пока сушится первая, вы сможете выполнить всю работу за три часа. Сокращение времени зависит от количества загружаемых вещей и количества стиральных/сушильных машин. Для выполнения отдельной загрузки в любом случае понадобится два часа, но в приведенном примере накладывание процессов увеличивает общую пропускную способность с 0,5 загрузки/час до 0,75 загрузки в час.
Графическое представление конвейера, используемого в ядрах процессоров AMD Bobcat (2011). Обратите внимание, как много в нем различных элементов и стадий.
Процессоры используют тот же принцип для повышения пропускной способности команд. Конвейеры современных процессоров на архитектуре ARM или x86 могут использовать свыше 20 стадий вычислительного конвейера, а это значит, что ядро процессора одновременно обрабатывает свыше 20 различных команд. Процессоры могут отличаться по разделению этих стадий под различные нужды, но в одном из примеров, принцип работы которого находится в открытом доступе, имеется 4 цикла для выборки, 6 циклов для декодирования, 3 цикла для выполнения команд и 7 циклов для отправки результатов в память.
Возвращаясь к теме, теперь вы можете понять в чем проблема. Если процессор не определил тип команды до десятого цикла, то он начнет работу уже над 9 новыми командами, которые могут оказаться ненужными, если ветка команд уже не работает. Чтобы этого не происходило, процессоры оборудованы сложным механизмом, который называется модулем предсказателем переходов. По принципу работы этот механизм схож с машинным обучением. Детальное описание работы модуля предсказателя переходов — это тема для отдельной статьи, поэтому придется обойтись довольно простым объяснением: данный механизм отслеживает статус предыдущих переходов, чтобы определить, будет ли задействован следующий переход или нет. Современные предсказатели переходов могут обеспечить точность в 95% и выше.
После того, как точно станет известен результат перехода (т.е. завершился конкретный этап на конвейере), счетчик команд обновится и процессор приступит к выполнению следующей операции. Если же результат не совпал с тем, который предугадал предсказатель команд, процессор сбросит все команды, которые начал выполнять по ошибке, и запустит работу с правильной точки.
Внеочередное исполнение
Теперь, когда вы знаете принцип работы трех наиболее распространенных типов команд, давайте уделим внимание более продвинутыми функциям процессоров. Практически все современные модели ЦП фактически исполняют команды не в порядке их получения. Существует такая функция, как внеочередное исполнение, призванная сократить время простоя процессора во время ожидания завершения остальных команд.
Если процессор понимает, что следующей команде необходимы данные, для поиска которых понадобится больше времени, он может изменить порядок команд, начав работу над не связанной командой, пока происходит поиск. Внеочередное исполнение команд — необычайно полезная, но далеко не единственная вспомогательная функция процессора.
Еще одной крайне полезной особенностью процессора является предвыборка. Если засечь время, необходимое для выполнения случайной инструкции от начала и до конца, то можно обнаружить, что большую часть времени занимает доступ к памяти. Блок предварительной выборки — элемент в ЦП, который рассматривает команды, находящиеся в очереди, и определяет, какие данные им потребуются. Если он замечает, что для операции нужны данные, которые еще не находятся в кэше процессора, то он извлечет их из оперативной памяти и в кэш. Отсюда и его название.
Ускорители и будущее процессоров
Еще одна важная функция, которая все чаще появляется в процессорах — ускорители для конкретных задач. Эти ускорители представляют собой небольшие схемы, главная цель которых — как можно быстрее выполнить определенную задачу. Этой задачей может быть шифрование, кодирование данных или машинное обучение.
Конечно, процессор может делать все это самостоятельно, но созданный конкретно для этой цели блок будет намного более эффективен. Наглядным показателем мощностей ускорителей будет сравнение встроенного графического процессора с дискретной видеокартой. Разумеется, процессор может выполнять вычисления, необходимые для обработки графики, но наличие отдельного блока обеспечивает намного более высокую производительность. С ростом числа ускорителей фактическое ядро центрального процессора может занимать всего лишь небольшую часть чипа.
На первом рисунке снизу изображено устройство процессора Intel, выпущенного более десяти лет назад, где большая часть занята ядрами и кешем, а на втором показан гораздо более современный чип от AMD. Как мы видим, во втором случае большая часть кристалла отведена не под ядра, а под другие компоненты.
Кристалл процессора Intel первого поколения архитектуры Nehalem. Обратите внимание: ядра и кэш занимают подавляющее часть площади.
Кристалл системы на чипе от AMD. Много места отведено под ускорители и внешние интерфейсы.
Многоядерность
Последняя особенность процессоров, которая будет рассмотрена в этой статье — то, как можно объединить несколько отдельных процессоров для получения многоядерного. Это не просто объединение нескольких копий одного ядра, ведь как нельзя просто превратить однопоточную программу в многопоточную, так нельзя и провернуть подобное с процессором. Проблема возникает из-за зависимости ядер.
В случае с четырьмя ядрами процессору необходимо отправлять команды в 4 раза быстрее. Также нужно четыре раздельных интерфейса для памяти. Именно из-за наличия нескольких ядер на одном чипе, потенциально работающих с одними и теми же частями данных, возникает проблема слаженности и согласованности их работы. Предположим, если два ядра обрабатывали команду, использующую одни и те же данные, то как процессор определяет, у которого из них правильное значение? А что, если одно ядро модифицировало данные, но они не успели вовремя дойти до второго ядра? Поскольку у них есть отдельные кэши, в которых могут храниться пересекающиеся данные, для устранения возможных конфликтов необходимо использовать сложные алгоритмы и контроллеры.
Чрезвычайно важную роль в многоядерных процессорах играет и точность прогнозирования переходов. Чем больше в процессоре ядер, тем выше вероятность того, что одной из исполняемых команд будет именно команда перехода, способная в любое время изменить общий поток задач.
Как правило, отдельные ядра обрабатывают команды из разных потоков, тем самым снижая зависимость между ядрами. Поэтому, открыв диспетчер задач, вы чаще всего видите, что загружено лишь одно ядро процессора, а другие едва работают — многие программы попросту изначально не предназначены для многопоточности. Кроме того, могут быть определенные случаи, в которых эффективнее использовать только одно ядро процессора, а не тратить ресурсы на попытки разделить команды.
Физическая оболочка процессора
Несмотря на то, что большая часть этой статьи была посвящена сложным механизмам работы архитектуры процессора, не стоит забывать и о том, что все это должно быть создано и работать в виде реального, физического объекта.
Для того, чтобы синхронизировать работу всех компонентов процессора, используется тактовый сигнал. Современные процессоры обычно работают на частотах от 3.0 ГГц до 5.0 ГГц, и за последнее десятилетие ситуация особо не изменилась. При каждом цикле внутри чипа включаются и выключаются миллиарды транзисторов.
Такты важны для того, чтобы обеспечить идеальную работу каждой стадии вычислительного конвейера. Количество команд, обрабатываемых процессором за каждую секунду, зависит именно от них. Частоту можно увеличить путем разгона, сделав чип быстрее, но это в свою очередь повысит энергопотребление и тепловыделение.
Фото: Michael Dziedzic
Тепловыделение — главный враг процессоров. Когда цифровая электроника нагревается, может начаться разрушение микроскопических транзисторов. Это в свою очередь может привести к повреждению чипа, если тепло не отвести. Чтобы этого не произошло, каждый процессор оборудован термораспределителями. Сам кристалл может занимать всего 20% площади процессора, ведь увеличение площади позволяет более равномерно распределять тепло по радиатору. Кроме того, дополнительно увеличивается количество имеющихся ножек процессора (контактов), предназначенных для взаимодействия с другими компонентами компьютера.
На современных процессорах может располагаться свыше тысячи входных и выходных контактов на задней панели. Мобильный чип может быть оснащен всего несколькими сотнями, поскольку большинство вычислительных элементов расположены уже внутри чипа. Независимо от дизайна, около половины из них предназначены для распределения питания, а остальные — для передачи данных с оперативной памяти, чипсета, накопителей, устройств PCIe и др. Высокопроизводительным процессорам, потребляющим сто и более ампер при полной нагрузке, нужны сотни ножек для равномерного распределения тока. Обычно они покрываются золотом для улучшения проводимости. Стоит отметить, что разные производители располагают ножки по-разному во всей своей многочисленной продукции.
Подытожим на примере
Чтобы подвести итоги, кратко рассмотрим архитектуру процессора Intel Core 2. Это было еще в 2006 году, поэтому некоторые детали могут быть устаревшими, но информации о новых разработках отсутствуют в публичном доступе.
На самом верху располагается кэш команд и буфер ассоциативной трансляции. Буфер помогает процессору определить, где в памяти располагаются необходимые команды. Эти инструкции хранятся в кэше команд первого уровня, а после этого отправляются в предекодер, так как из-за сложностей архитектуры x86 декодирование происходит во множество этапов. Сразу же за ними идет предсказатель переходов и предвыборщик кода, которые снижают вероятность возникновения потенциальных проблем со следующими командами.
Далее команды отправляются в очередь команд. Вспомните, как внеочередное исполнение позволяет процессору выбрать именно ту команду, которую практичнее всего выполнить в конкретный момент из очереди текущих инструкций. После того, как процессор определил нужную команду, та декодируется во множество микроопераций. В то время как команда может содержать сложную для ЦП задачу, микрооперации представляют собой детализированные задачи, которые процессору легче интерпретировать.
Затем эти инструкции попадают в таблицу псевдонимов регистров, переупорядочивающий буфер и станцию резервации. Подробно расписать их принцип работы в одном абзаце, увы, не получится, так как это — информация, которую обычно подают на последних курсах технических вузов. Если в двух словах, то все они используются в процессе внеочередного исполнения для управления зависимостями между командами.
На самом деле, у каждого ядра процессора множество арифметическо-логических устройств и портов памяти. Команды отправляются в станцию резервации, пока не освободится устройство или порт. Затем команда обрабатывается с помощью кэша данных первого уровня, а полученный результат сохраняется для дальнейшего использования, после чего процессор может приступать к следующей задаче. На этом все!
Пусть эта статья и не предназначалась для того, чтобы служить исчерпывающим руководством по тому, как работает каждый из процессоров, она должна дать вам базовое представление об их внутренней работе и сложности. К сожалению, о том, как действительно работают современные процессоры, знают лишь работники Intel и AMD, поэтому информация, описанная в этой статье — лишь вершина айсберга, ведь каждый пункт, описанный в тексте — это результат огромного количества исследований и разработок.
Другие материалы по теме
Если вам хочется узнать больше о том, как создаются различные компоненты, описанные в этом тексте, то настоятельно советуем обратить внимание на вторую часть серии статей «Как разрабатываются и создаются процессоры?». Если же вы больше заинтересованы в том, как производятся физические оболочки процессоров, то вам стоит ознакомиться с третьей статьей той же серии.
Источник https://xn—-7sbbfb7a7aej.xn--p1ai/informatika_07_sim/informatika_materialy_zanytii_07_08.html
Источник https://www.compgramotnost.ru/kak-rabotaet-pk/chto-takoe-sistemnoe-programmnoe-obespechenie
Источник https://i2hard.ru/publications/24825/