2  Вводное занятие. Устройство компьютера.

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

2.1 Устройство компьютера

Компьютер - электронная вычислительная машина (ЭВМ). Основная задача ЭВМ - выполнять арифметические и логические операции. Компьютер состоит из:

  • блока питания;

  • материнской платы, на которую подключаются все компоненты компьютера;

  • внутренних устройств: центрального процессора(-ов), графических карт, планок оперативной памяти, чипа BIOS, жестких или твердотельных дисков.

  • системы охлаждения;

  • периферийных устройств: клавиатура, мышь, монитор, принтеры и прочее оборудование, приборы (амплификаторы, томографы и пр.).

Компьютер состоит как из проводниковых элементов: резисторы, конденсаторы, катушки индуктивности, - так и из полупроводниковых: транзисторы, диоды, тиристоров. Полупроводниковые элементы в функциональном для него температурном режиме проводит ток только в одном направлении. Полупроводниковые элементы представляет из себя кремниевый кристалл с лигирующими добавками. Лигирующие добавки бывают электрон-дефицитными (p - типа, например, индий), где носителем заряда являются дырки и электрон-избыточными (n - типа, например, мышьяк). За счет сочетания полупроводников с разным типом проводимости можно получать различные комплектующие, например, транзисторы, которые бывают pnp типа и npn типа. Из базовых элементов, строятся более сложные, например, операционные усилители, триггеры, регистры. Из сочетания этих элементов строятся микросхемы, выполняющие определенные функции. Например, упрощенная схема строения аналого-цифрового преобразователя, который преобразует аналоговый электрический сигнал в последовательность битов представлена на рисунке Figure 2.1.

Figure 2.1: Схема АЦП (принцип работы)

Без АЦП невозможна работа, например, звуковой карты, которая ответственна за запись и воспроизведение звуков.

2.1.1 Материнская плата

Материнская плата (“материнка”, “мать”) является основным элементом компьютера. По сути, она и есть компьютер. Представляет из себя слоенную текстолитовую плату, в которой слои проводников сменяются слоями изолирующего материала. На этой плате расположены входы для различных устройств: процессора, оперативной памяти, видеокарты и других.

Figure 2.2: Пример материнской платы с расположенными на ней компонентами

2.1.2 Принципы работы процессора

Процессор состоит из двух укрупненных компонентов: устройство управления(УУ) и арифметико-логического устройства(АЛУ).

Существует два типа реализации УУ:

  • УУ на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого УУ без физического вмешательства невозможна.

  • УУ с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть сохраняется в памяти УУ.

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

АЛУ выполняет арифметические и логические операции с помощью комбинации логических элементов. Все арифметические опреации можно выразить через две операции: сложение и сдвиг. Подробнее арифметика ЭВМ будет разбираться на семинаре 3.

Figure 2.3: Схема полусумматора (не имеет входа переноса из предыдущего разряда)

На самом деле функциональных блоков в процессере намного больше(HiT 2024).

Процессор хранит информацию в регистрах и кэше. Они состоят из триггеров, которые в свою очередь также состоят из логических элементов. Триггер хранит 1 бит информации.

Классификация триггеров:

flowchart TD
    A["Триггеры"] --> |Меняют состояние\nв любой момент| B["Асинхронные"]
    A --> |Смена состояния\nчерез отдельный вход|C["Синхронные"]

Инструкция процессора состоит из кода команды и адреса ячейки памяти. Команды бывают:

  • Арифметические: сложение, вычитание, умножение и т. д.;

  • Логические: И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.;

  • Информационные: move, output, input, load, store;

  • Команды перехода: goto, call, return, if … goto;

  • Команда останова: halt.

Инструкции предоставляются компьютеру на языке ассемблера или генерируются компилятором высокоуровневых языков. В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную инструкцию.

2.1.3 Понятие об интерфейсах

Интерфейс (от англ. interface) — граница между двумя функциональными объектами, требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т. д.) между элементами системы. В наиболее общем смысле интерфейсом называется общая граница, через которую передаётся информация. В вычислительной системе взаимодействие может осуществляться на пользовательском, программном и аппаратном уровнях. Соответственно интерфейсы бывают пользовательские, программные и аппаратные.

  • Пользовательский интерфейс определяет взаимодействие с конечным пользователем. То, как он будет передавать информацию информационной системе и получать от неё ответ

  • Программный интерфейс определяет взаимодействие между различными частями программы, одной программы с другими программами, программы с операционной системой

  • Аппаратный интерфейс определяет формат передачи данных от одного устройства к другому. Например, интерфейс USB определяет обмен информации между различными устройствами: между компьютером и компьютером, между компьтером и флэш-накопителем. Этот интерфейс имеет множество стандартов, которые определяют распиновку кабеля, устройство пакетов и многое другое.

2.1.4 Программное обеспечение

Компьютер это не только аппаратная часть (hardware), но и программы (software), которые должны на нем выполняться. Программа - это форма записи алгоритма на языке, понятному исполнителю, в данном случае компьютеру. Программное обеспечение делят по целям на:

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

  • прикладное, которое необходимо нам для решения наших задач

  • инструментальное, которое необходимо для создания ПО

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

В основном биоинформатики делятся на две большие группы: разработчики прикладного ПО, и пользователи готовых программ. Далеко не всегда нужно изобретать свой собственный велосипед, а уметь хорошо пользоваться готовыми программами.

2.2 Git

2.3 Markdown

2.4 Домашнее задание

Вы - лаборант-исследователь лаборатории N НИИ ЧАВО, занимающиейся геномными исследованиями людей. Ваш заведующий лаборатории дал вам задание: лаборатории необходим новый сервер для расчетов. Кроме того, идут слухи, что болезнь Y набирает обороты и всех сотрудников переведут на удаленную работу. В лаборатории всего 10 сотрудников. Из них трое занимаются разработкой и проведением тяжелых вычислений, в том числе обучением нейронных сетей. Им необходимо до 100 гб оперативной памяти каждому. Остальные работники занимаются офисной работой и просматривают результаты секвенирования в геномном браузере, который потребляет до 32 гб оперативной памяти на одного пользователя. Кроме того, лаборатории необходимо хранилище результатов секвенирования, так как они обязаны хранить их по закону 75 лет. Лаборатория производит примерно по 50 гб геномных данных в месяц. Выделенный бюджет на сервер 700 000 рублей. Составьте примерную сборку сервера из реальных компонентов, чтобы лаборатория могла комфортно функционировать в течение 3 лет до следующей закупки.