Интерфейсы подключения жестких дисков — IDE, SATA и другие. Редактор или IDE? Очередная попытка анализа

Инструмент 25.07.2019
Инструмент

IDE (Integrated Device Electronics) - интерфейс устройств со встроенным контроллером. При создании этого интерфейса разработчики ориентировались на подключение дискового накопителя. За счет минимального удаления контролера от диска существенно повышается быстродействие.

Интерфейс EIDE имеет первичный и вторичный каналы, к каждому из которых можно подключить два устройства, то есть всего их может быть четыре. Это может быть жесткий диск, CD-ROM или переключатель дисков.

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

  • а - кабель параллельного интерфейса ATA/IDE (РАТА);
  • б - 40-контактный разъем РАТА;
  • в - разъемы РАТА на плате;
  • г - последовательный разъем АТА (SATA);
  • д - разъемы SATA на плате.

Таблица разъемов параллельного интерфейса АТА

Контакт Назначение Контакт Назначение Контакт Назначение Контакт Назначение
1 Сброс 2 Земля 3 Данные 7 4 Данные 8
5 Данные 6 6 Данные 9 7 Данные 5 8 Данные 10
9 Данные 4 10 Данные 11 11 Данные 3 12 Данные 12
13 Данные 2 14 Данные 13 15 Данные 1 16 Данные 14
17 Данные 0 18 Данные 15 19 Земля 20 Key
21 DDRQ 22 Земля 23 I/O запись 24 Земля
25 I/O чтение 26 Земля 27 10C HRDY 28 Cable Select
29 DDACK 30 Земля 31 IRQ 32 Не используется
33 Адрес 1 34 GPIO DMA66 Detect 35 Адрес 0 36 Адрес 2
37 Chip Select 1Р 38 Chip Select ЗР 39 Активен 40 Земля

Существует несколько разновидностей интерфейса IDE, совместимых снизу вверх друг с другом.

Спецификация Enhanced IDE

В целях развития возможностей интерфейса IDE компанией Western Digital была предложена его расширенная спецификация Enhanced IDE (синонимы: E-IDE, Fast AТА, АТА-2 и Fast АТА-2), которая обрела затем статус американского стандарта ANSI под названием АТА-2. Она содержит ряд нововведений: поддержку IDE-накопителей емкостью свыше 504 Мбайт, поддержку в системе нескольких контроллеров IDE и подключение к одному контроллеру до четырех устройств, а также поддержку периферийных устройств, отличных от жестких дисков (приводов CD-ROM, CD-R и DVD-ROM, накопителей LS-120 и ZIP, магнитооптики, стримеров и тому подобное). Расширение спецификации IDE для поддержки иных типов накопителей с интерфейсом IDE называют также ATAPI (АТА Packed Interface). В Enhanced IDE также введены элементы распараллеливания операций обмена и контроля за целостностью данных при передаче.

  • а - АТА 2 и АТА 3.
  • б - Ultra АТА.
  • в - Ultra АТА/66.

В спецификацию интерфейса Enhanced IDE добавлена поддержка режимов PIO Mode 3 и 4, а также режимы DMA Single Word Mode 2 и Multi Word DMA Mode 1 и 2. Максимальная скорость передачи данных по шине в режиме РIO Mode 3 составляет 4.1 Мбайт/с, а в режимах РIO Mode 4 и Single Word DMA Mode 2 - 16.7 Мбайт/с. Режим Multi Word DMA Mode 2 позволяет получить пиковую скорость обмена свыше 20 Мбайт/с.

Следующим шагом в развитии интерфейса IDE/ATA явился стандарт Ultra АТА (он же Ultra DMA, АТА-33, DMA-33, АТА-3). Ultra АТА является стандартом де-факто использования быстрого Режима DMA - mode 3, обеспечивающего скорость передачи данных 33.3 Мбайт/с. Для обеспечения надежной передачи данных по все тому же кабелю используются специальные схемы контроля и коррекции ошибок, при этом сохраняется обратная совместимость с предыдущими стандартами - АТА и АТА-2.

Таблица характеристик IDE/ATA интерфейсов

Спецификация АТА-1 АТА-2 АТА-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7
Синонимы АТА, IDE EIDE, Fast АТА, Fast IDE, Ultra ATA EIDE АТА-4, UltraATA/33 АТА-5, UltraATA/66 АТА-6, Ultra ATA/100 АТА-7, Ultra ATA/133
Пропускная способность, Мбай/с 3.3-8.3 11.1-16.6 16 16.7-33.3 44.4-66.7 100 133-150
Количество соединений 2 2 2 2 на один кабель 2 на один кабель 2 на один кабель 1 на один кабель
Характеристики кабеля 40 контактов 40 контактов 40 контактов 40 контактов 40 контактов, 80-жильный 40 контактов, 80-жильный 7 контактов
Новые свойства 28-битовая адресация логических блоков (LBA) S. M. A. R. T. Интерфейс ATAPI, поддержка CD-ROM, стримеров и прочего. 80-жильный кабель 48-битовая LBA SATA 1.0, поддержка длинных логических / физических блоков
Максимальный размер диска 137 Гбайт (128 GiBi) 144 Пбайт (128 PiBi)
Контроль no CRC Нет Нет Нет Есть Есть Есть
Дата выпуска 1981 1994 1996 1997 1999 2000 2003
1 Стандарт ANSI Х3.221-1994 ХЗ. 279-1996 Х3.298-1997 NCITS 317-1998 NCITS 340-2000 NCITS 361-2002 NCITS 397-2005 1

Наконец - интерфейсы Ultra ATA/66, Ultra ATA/100, Ultra AТА/133, позволяющие осуществлять передачу данных со скоростями 66.100 и 133-150 Мбайт/с соответственно.

Последовательный интерфейс Serial АТА (SATA). Основные преимущества Serial АТА по сравнению с Parallel АТА (РАТА):

  • уменьшено количество контактов разъема (до 7 вместо 40);
  • снижено напряжение сигнала (до 500 мВ сравнительно с 5 В для РАТА);
  • меньший, более удобный для проводки кабель длиной до 1 м;
  • улучшены возможности обнаружения и коррекции ошибок.

Первое поколение (известно как SATA/150 или SATA 1) появилось на рынке в середине 2002 года и поддерживало скорость передачи данных до 1.5 Гбит/с. SATA 1 использует схему кодирования 8В/10В на физическом уровне, которая имеет эффективность, равную 80 %, что приводит к реальной скорости в 1.2 Гбит/с или 150 Мбайт/с.

Следующая версия (SATA 3.0 Гбит/с) также использует схему 8В/10В, поэтому максимальная скорость передачи составляет 2.4 Гбит/с или 300 Мбайт/с. Однако сегодняшние устройства НЖМД не поддерживают таких скоростей, поэтому реальное быстродействие системы ограничено возможностями дисковода. Спецификацию 3.0 Гбит/с часто называют «Serial АТА 2» («SATA 2»), а также SATA 3.0 или SATA/300, продолжая линию АТА/100, АТА/133 и SATA/150.

Интерфейс SCSI был разработан в конце 1970-х годов организацией Shugart Associates. Первоначально известный под названием SASI (Shugart Associates System Interface), он после стандартизации в 1986 году уже под именем SCSI (читается «скази») стал одним из промышленных стандартов для подключения периферийных устройств - винчестеров, стримеров, сменных жестких и магнитооптических дисков, сканеров, CD-ROM и CD-R, DVD-ROM и тому подобное К шине SCSI можно подключить до восьми устройств, включая основной контроллер SCSI (или хост-адаптер).

Интерфейс SCSI является параллельным и физически представляет собой плоский кабель с 25-, 50-, 68-контактными Разъемами для подключения периферийных устройств. Шина SCSI содержит восемь линий данных, сопровождаемых линией контроля четности, и девять управляющих линий. Стандарт SCSI определяет два способа передачи сигналов: одно-полярный, или асимметричный (Single ended), и дифференциальный (Differential). В первом случае имеется один провод с нулевым потенциалом («земля»), относительно которого передаются сигналы по линиям данных с уровнями сигналов, соответствующими ТТЛ-логике. При дифференциальной передаче сигнала для каждой линии данных выделено два провода, и сигнал на этой линии получается вычитанием потенциалов на их выходах. При этом достигается лучшая помехозащищенность, что позволяет увеличить длину кабеля.

  • а - общая архитектура;
  • б - адаптер SCSI.

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

Устройства SCSI также соединяются в виде цепочки (daisy chain), причем каждое устройство SCSI имеет свой адрес (SCSI ID) в диапазоне от 0 до 7 (или от 0 до 15). В качестве адреса платы контроллера обычно используется наибольшее значение SCSI ID - 7(15), адрес загрузочного диска SCSI ID равен 0, а второго диска - 1. Обмен между устройствами на магистрали SCSI определяется нормированным списком команд (Common Command Set, CCS). Программное обеспечение для интерфейса SCSI не оперирует физическими характеристиками накопителя (то есть числом цилиндров, головок и так далее), а имеет дело только с логическими блоками данных, поэтому в одной SCSI-цепочке могут быть размещены, например, сканер, жесткий диск и накопитель CD-R.

Опрос устройств производится контроллером SCSI сразу после включения питания. При этом для устройств SCSI реализовано автоконфигурирование устройств (Plug-and-play) по протоколу SCAM (SCSI Configured AutoMagically), в котором значения SCSI ID выделяются автоматически. Для стандартизированного управления SCSI-устройствами наиболее широко применяется программный интерфейс ASPI (Advanced SCSI Programming Interface).

Характеристики SCSI

Существует более десятка различных версий интерфейса SCSI. Наиболее существенные из них - SCSI-1, Fast SCSI, Fast Wide SCSI, Ultra SCSI, Ultra 2 SCSI.

Основными характеристиками шины SCSI являются:

  • ширина - 8 или 16 бит («narrow» или «wide»);
  • частота, с которой тактируется шина;
  • физический тип интерфейса (однополярный, дифференциальный, оптика).

На скорость влияют в основном два первых параметра. Обычно они записываются в виде приставок к слову SCSI.

Максимальную скорость передачи устройство-контроллер можно подсчитать, взяв частоту шины, а в случае наличия «Wide» умножить ее на 2 (например, FastSCSI - 10 Мбайт/с, Ultra2WideSCSI -80 Мбайт/с).

Последовательные интерфейсы SCSI

Четыре недавние версии SCSI, а именно SSA (Serial Storage Architecture), FC-AL и Serial Attached SCSI (SAS), отошли от традиционного параллельного стандарта SCSI и ориентированы на передачу данных по последовательным коммуникациям. Основные преимущества последовательного интерфейса - большие скорости передачи данных; «горячее» включение-выключение; лучшая помехозащищенность.

Таблица версий (поколения) интерфейса SCSI

Тип шины Макс. скорость, Мбайт/с Ширина шины (разрядность) Максимальная длина связи (в зависимости от типа сигналов), в метрах Максимальное количество подключений
SE LVD HVD
SCSI-1 5 8 (узкий) 6 - 25 8
Fast SCSI 10 8 3 - 25 8
Fast Wide SCSI 20 16 (широкий) 3 - 25 16
Ultra SCSI 20 8 1.5 - 25 8
Ultra SCSI 20 8 3 - - 4
Wide Ultra SCSI 40 16 - - 25 16
wide Ultra SCSI 40 16 1.5 - - 8
Wide Ultra SCSI 40 16 3 - - 4
Ultra2 SCSI 40 8 Не определена для скорости выше Ultra 12 25 8
Wide Uitra2 SCSI 80 16 - 12 25 16
Ultra3 SCSI or Ultra 160 SCSI 160 16 12 Не определена для скорости выше Ultra2 16
Ultra320 SCSI 320 16 - 12 - 16
SSA 40 1 25 96(192)
SSA40 80 1 25 96(192)
FC-AL 1Gb 100 1 500-3000 127
FC-AL 2Gb 200 1 500-3000 127
FC-AL4Gb 400 1 500-3000 127
SAS 3 Gbit/s 300 1 6 16 256
Fibre Channel 2000 Не определена 10 000-100 000 Не определено

Терминаторы, разъемы

По типу сигналов различают линейные (Single Ended) и дифференциальные (Differential) версии SCSI, их кабели и разъемы идентичны, но электрической совместимости устройств между ними нет.

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

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

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

По электрическим свойствам различают следующие типы терминаторов:

  • пассивные (SCSI-1) с сопротивлением 132 Ом (обычные резисторы). Эти терминаторы не подходят для высокоскоростных режимов SCSI-2;
  • активные (110 Ом) - специальные терминаторы для обеспечения работы на частоте 10 МГц в SCSI-2;
  • FPT (Forced Perfect Terminator) - улучшенный вариант активных терминаторов с ограничителями выбросов.

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

Кабели

Ассортимент кабелей SCSI довольно широк. Основные стандартизированные кабели:

  • А-кабель: стандартный для 8-битового интерфейса SCSI, 50-проводный внутренний шлейф (разъемы IDC-50) или внешний экранированный (разъемы Centronics-50).
  • В-кабель: 16-битовый расширитель SCSI-2, распространения не получил.
  • Р-кабель: 16-битовый SCSI-2/3.68-проводный с улучшенными миниатюрными экранированными разъемами, универсальными для внутренних и внешних кабелей 8-, 16- и 32-битовых версий SCSI (в 8-битовом варианте контакты 1-5.31-39.65-68 не используются); разъемы для внешнего подключения выглядят как миниатюрный вариант Centronics с плоскими контактами, внутренние имеют штырьковые контакты.
  • Q-кабель: 68-проводное расширение до 32 бит, используется в паре с Р-кабелем.
  • Кабель с разъемами D-25P: 8-битовый, стандартный для Macintosh, используется на некоторых внешних устройствах (Iomega ZIP Drive).

Таблица скоростей передачи данных, длина и типы кабелей SCSI-1, SCSI-2

Возможны различные вариации кабелей-переходников.

Назначение контактов разъемов на примере распространенного А-кабеля приведено в таблице.

Таблица разъемов А-кабеля SCSI

Контакт разъема Сигнал Контакт разъема Сигнал
1 GND 26 DB0#
2 GND 27 DB1#
3 GND 28 DB2#
4 GND 29 DB3#
5 GND 30 DB4#
6 GND 31 DB5#
7 GND 32 DB6#
8 GND 33 DB7#
9 GND 34 DBParity#
10 GND 35
11 GND 36
12 GND/Reserved 37 Reserved
13 Open 38 TERMPWR
14 Reserved 39 Reserved
15 GND 40
16 GND 41 ATN#
17 GND 42 GND
18 GND 43 BSY#
19 GND 44 ACK#
20 GND 45 RST#
21 GND 46 MSG#
22 GND 47 SEL#
23 GND 48 C/D#
24 GND 49 REQ#
25 GND 50 I/O

Шина . Как и в шине PCI, в шине SCSI предполагается возможность обмена информацией между любой парой устройств. Конечно чаще всего обмен производится между хост-адаптером и периферийными устройствами. Копирование данных между устройствами может производиться без выхода на системную шину компьютера. Здесь большие возможности имеют интеллектуальные хост-адаптеры со встроенной кэш-памятью. В каждом обмене по шине принимает участие его инициатор (Initiator) и целевое устройство (Target). В таблице приводится назначение сигналов шины.

Таблица назначений сигналов шины SCSI

Сигнал Источик: I=Initiator, T=Target Назначение
DBx# - Инверсная шина данных с битами паритета
TERMPWR - Питание терминаторов
ATN# I Внимание
BSY# I, T Шина занята
REQ# T Запрос на пересылку данных
ACK# I Ответ на REQ#
RST# I, T Сброс
MSG# T Target передает сообщение
SEL# I/T Выбор (Select) целевого устройства инициатором или Reselect инициатора целевым устройством
C/D# T Управление (0) / данные (1) на шине
l/0# T Направление передачи относительно инициатора или фаза Selection (1) / Reselection (0)

Параметры конфигурирования SCSI-устройств

Все устройства на шине должны быть согласованно сконфигурированы. Для них требуется программно или с помощью перемычек (джамперов) установить следующие основные параметры.

Идентификатор устройства - SCSI ID - адрес 0-7 (или 0-15), уникальный для каждого устройства на шине. Обычно хост-адаптеру, который должен иметь высший приоритет, назначается ID 7. Заводское назначение идентификаторов устройств приведено в таблице, хотя оно и не является обязательным. Устройства адресуются позиционным кодом (хотя ID задается 3-4-битовым кодом), что обеспечивает совместимость адресации 8- и 16-битовых устройств на одной шине. Номер SCSI ID обычно устанавливается с помощью перемычек (хотя в SCSI существуют и новые стандарты, аналогичные Plug-and-Play, не требующие перемычек).

Таблица заводских установов идентификаторов устройств

Контроль паритета - SCSI Parity

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

Включение терминаторов - Termination

Активные терминаторы могут включаться одним джампером или даже управляться программным сигналом. Терминаторы должны быть включены только на крайних устройствах в цепочке.

Питание терминаторов - TerminatorPower

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

Согласование скорости синхронного обмена - SCSI Synchronous Negotiation

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

Старт по команде - Start on Command, или задержанный старт - Delayed Start

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

Разрешение отключения - Enable Disconnection

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

Хост-адаптер

Хост-адаптер SCSI является важнейшим узлом интерфейса, определяющим производительность подсистемы SCSI-устройств. Существует широкий спектр адаптеров, начиная от простейших, к которым можно подключать только устройства, не критичные к производительности.

Конфигурирование SCSI хост-адаптеров с точки зрения шины SCSI не отличается от конфигурирования других устройств (смотри ранее). Для современных адаптеров вместо джамперов используется программное конфигурирование. Утилита конфигурирования обычно входит в расширение BIOS (на плате адаптера), и приглашение к ее исполнению выводится на экран при инициализации во время POST.

Хотелось бы в очередной раз поднять эту довольно спорную тему.

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

В статье я постараюсь исправить это упущение и расставить ещё немного точек над «ё».

Приглашаю всех поучавствовать в поисках идеального инструмента.

О моём опыте

Программировать я начинал ещё в ДОС. на Turbo Pascal-е. Причём, почему-то, IDE мы тогда использовали только для отладки, и то достаточно редко. Для писания кода предпочитали использовать некий безымянный edit.exe без всякой подсветки синтаксиса в связке с Volkov Commander. И этого хватало. Этим же способом я позже занимался ассемблером и, частично, C++.

Продолжая изучать C++ я перешел на Windows и, соответственно, Visual Studio - куда же без него. Застал версии, если не ошибаюсь, с 5 до 7. После простенького редактора это было нечто - кодогенерация и автодополнение вызывали восторг. Правда, во всём этом сгенерированном добре разобраться было практически невозможно, но это казалось неважным.

Через некоторое время я пересел на Linux и занялся веб-разработкой на php. Здесь параллельно изучал vim и для разработки использовал ZendStudio. В какой-то момент начал использовать только Vim для всего - превратил его, в соответствии с многочисленными руководствами в маленькую ide. В нём же написал свою первую велосипедную CMS на php.

Замечу, что до этого программирование не было основным видом моей деятельности. Да, я и для работы писал различные мелкие утилитки, делал темы для для WordPress, но основным родом деятельности было администрирование.

Как только я занялся разработкой профессионально - возможностей vim мне перестало хватать. Был сначала eclipse, потом netbeans, сейчас - phpstorm.

Последние пол-года героически пытаюсь освоить emacs, в т.ч. в качестве основной рабочей среды.

Так что у меня есть с чем сравнивать и, надеюсь, моё мнение будет достаточно обоснованным и агрументированным.

IDE? IDE...

Я долго думал, в какой форме привести сравнение преимуществ и недостаков сторон. Список для этого не очень подходит, т.к. простое перечисление не вполне отражает суть вопроса. Редактор и IDE не противоположности, а инструменты, чья область применения перекрывается в некоторой области. Преимущества редактора далеко не всегда является недостатками среды и наоборот. По этой причине дальше идут более-менее структурированные рассуждения на тему.

Начну, пожалуй, с одного из бесспорных преимуществ редактора - его богатых возможностей по работе с текстом и возможности всё делать не отрывая рук от клавиатуры. Cреды в большинстве своём так не умеют. Только вот нужны ли такие возможности при написании кода? При написании статьи или письма, думаю, удобно одним нажатием клавиши поменять местами 2 слова или передвинуть абзац вверх страницы. Но в тексте программы это, в большинстве случаев бессмысленно и требует рефакторинга. А платить за это приходится либо пальцедробительными сочетаниями клавиш emacs, либо не менее мозгодробительными командами в vim. А ведь это всё нужно поминать! То, что просто решается одним движением мыши, вроде перемещения окна или изменения их размеров, превращается в целый квест. Да даже выделить текст проще мышкой - точнее, быстрее, и на надо считать сколько там слов до нужнго места в тексте. Нет, программисту тоже могут быть полезны эти функции, но дело в том, что его временные затраты на собственно редактирование кода ничтожны, так что выгоды во времени не будет практически никакой. А вот значительное усложнение инструмента - налицо.

Программист 80% своего времени тратит на понимание написанного кода и перемещению по нему. Причём перемещению именно по коду, а не по тексту! И здесь ему редактор не может помочь абсолютно ничем. Список параметров метода во всплывающей подсказке не покажет, перейти к определению метода не позволит, синтаксис не проконтролирует. А IDE, даже самые простые, с этим справляются просто и элегантно. Я недавно потратил минут 10 на поиск определения одного метода в проекте при помощи silversearcher из emacs. Оказалось, класс был определён в другом модуле и т.п. 10 минут, вместо одного клика мышкой! Я в emacs, конечно, недостаточно опытен, поэтому пусть будет 5 минут, даже минута. Но всё равно соотношение впечатляет.

И вот здесь IDE показывает свой, пожалуй, единственный, но очень жирный плюс - это наличие синтаксического анализатор языка программирования. Среда «понимает» что она редактирует код. Редактор - нет. А это и автодополнение, и навигация, и подсветка синтаксических, а, иногда, и семантических ошибок. Кажется, излишество, приятная мелочь, баловство. Но оно, превращается в необходимость после того, как размер проекта привысит некоторый предел. А с учётом объемных современных фреймворков - этот предел наступает практически сразу.

Да, на проекте из десятка файлов и пары тысяч строк, этот плюс не проявляет себя во всей красе. Редактор тоже может выполнять то же самое автодополнение, но он никогда не отсеет бессмысленные, варианты. И если размер проекта приближается к 100 тыс строк и состоит из тысяч файлов не считая библиотек, то становится проблемно выбирать нужное название из мешанины из названий переменных, методов других классов, да и просто слов из комментариев (было такое в vim-е у меня, не знаю, может, исправили). Интеллектуальные подсказки избавляют от необходимости помнить названия нужных функций и их параметры. Часто это просто физически невозможно.

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

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

Кто-то может возразить, что в современных редакторах многие из этих функций уже реализованы и ничем не уступают самым навороченным IDE. Не соглашусь. Во-первых, полноценных реализаций нет. Не работают они, как должны. Во-вторых, установка всего этого уже достаточно сложная задача. Да даже конфигурация внутренних функций редактора уже нетривиальна. Попробуйте, скажем, включить нумерацию строк в том же emacs! Плюс ко всему, часто нужный функционал реализуется десятком плагинов непонятно как между собой взаимодействующих. А часто ещё и имеющих десяток версий и веток, не всегда совместимых, странно настраиваюхся и т.п. Можно, конечно, потратить месяц, всё настроить и установить (что тоже удел энтузиастов), но это всего лишь приблизит редактор к уровню IDE. К примеру, вернёмся к тем же проектам - я пробовал и Project под vim и projectile под emacs и ещё некоторые плагины. Если Project ещё более-менее отвечает моим требованиям (хотя в последней версии мне вообще не удалось создать проект из-за багов), то projectile оставил исключительно негативные впечатления.

И тем не менее, у редакторов есть несколько областей применения, где они, как минимум, составляют достойную конкуренцию средам разработки.

Во-первых, они себя лучше показывают на мелких проектах. Нет смысла загружать IDE-комбайн для работы с проектом в 10-20 файлов. Проще в редакторе подправить 3-4 строки.

Во-вторых, в некоторых специфических областях все преимущества IDE нивелируются. Например, низкоуровневая разработка для linux. Я этим не занимался, но, судя по структуре кода и предпочтениям разрабочиков (около 70% - emacs и клоны, 25% - vim, 5% - какая-то экзотика вроде jed), IDE там делать нечего. Весь нужный код, с которым происходит работа, собран, как правило в одном-двух файлах, и не нужно прыгать в пределах всего проекта. Да и не сильно поможет автодополнение при выборе из десятка-двух функций с почти одинаковыми названиями.

В-третьих, редакторы могут работать не только с кодом. Всю их мощь можно задействовать при работе с csv или xml файлами. Либо чего-то другого, в чём иногда возникает необходимость, вроде статьи или письма. И не нужно переучиваться, искать удобную программу или запоминать горячие клавиши - всё под рукой, всё одинаковое.

В-четвёртых, возможность работы с языками, для которых нет вменяемой IDE. Скажем, с тем же ruby мне среда не сильно помогла. SublimeText-а оказалось достаточно. Хотя с большим ruby проектом я не работал, возможно, там бы IDE себя показала.

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

Итого

Я не очень люблю IDE, хотя так могло показаться по предыдущему тексту. Считаю их довольно монструозными, с кучей ненужных функций, медленными и требовательными к ресурсам. Да и лучшие из них довольно дорогие. Кроме того, я считаю, использование IDE расслабляет, и привязывает к себе. У редакторов, соответственно, всё наоборот. Плюс доступность и возможности тонкой доводки под себя. По крайней мере vim и emacs. В конце концов, они мне просто нравятся. Эту статью, например, я пишу в Emacs.

Но индустрия (и начальство) диктует свои требования. Если не использовать IDE, производительность значительно упадёт. Но никто не даст вам пол-часа на поиск пропущенной запятой в 10 тыс строках кода. Это всё должно выполняться автоматически и автоматически же исправляться. Мне тоже иногда нравится покопаться в коде без всяких инструментов - но на работе это непозволительная трата времени.

После всех своих проб и ошибок я сделал такой вывод - редактор можно использовать для разработки, но с IDE, после определённого предела он не сравнится и использование редактора для чего-то, за что вам платят - непозволительная роскошь. Да, если использовать правильные практики разработки, правильно проектировать/документировать код, следовать стандартам - можно сгладить врождённые недостатки редакторов. Но мы живём далеко не в идеальном мире, поэтому использование IDE - необходимость, независимо от нашего желания.

Максимальная производительность достигается при использовании механизма AHCI. Поэтому во всех новых ПК, которые работают под управлением операционной системы Windows 7 или более старших версий ОС от Microsoft, используется именно этот вариант. Если же речь идет о старых системах, то здесь нужно еще подумать, использовать AHCI или IDE. Что лучше? Ответ на этот вопрос зависит от многих факторов.

AHCI или IDE - что лучше? Как выбрать нужный режим?

Несмотря на популярность операционных систем Windows 7, 8, 10 многие владельцы персональных компьютеров и ноутбуков продолжают использовать Win XP. ОС отличается стабильностью. Людям комфортно с ней работать. Однако у системы Windows XP есть и ряд существенных недостатков:

  • официальная поддержка Microsoft данной ОС полностью прекращена;
  • технологически устаревшая операционная система;
  • не поддерживает новые версии DirectX (версии 10-12);
  • проблемы с безопасностью;
  • нет поддержки наиболее актуальных технологий;
  • на XP невозможно установить многие современные программы;
  • отсутствуют драйверы на новое оборудование.

Список можно было бы продолжать еще долго. Если рассматривать вопрос о том, какой лучше режим работы - AHCI или IDE - то здесь стоит принимать во внимание тот факт, что Windows XP просто не поддерживает первый вариант. Это, разумеется, касается и более старых версий ОС от Microsoft. Поэтому здесь выбор очевиден - только IDE. Но если человек относится к категории продвинутых пользователей, он может загрузить в систему специальные драйверы, которые позволяют использовать механизм AHCI. По умолчанию же этот режим не поддерживается.

Как работает режим IDE

Комплектующие, которым для подключения необходим интерфейс ATA, используют для работы механизм IDE. Данная технология является устаревшей, однако она широко применялась в девяностых годах прошлого столетия и в начале нулевых. Стандарт был внедрен в IBM PC - первых массовых популярных компьютерах.

Механизм IDE (параллельный интерфейс подключения накопителей) обеспечивал передачу данных со скоростью 150 Мбит/сек. Он не позволял использовать некоторые актуальные на тот момент технологические решения. Так, нельзя было произвести горячее извлечение из системы жесткого диска или CD-привода без выключения или перезагрузки системы. Подобные возможности были добавлены инженерами спустя некоторое время, однако лишь часть компьютеров получила их поддержку. Зная предысторию развития интерфейсов, можно легко ответить на ряд вопросов: AHCI или IDE - что лучше для конкретной операционной системы, какая схема обеспечивает более быструю работу?

Активное использование интерфейсов Parallel ATA закончилось примерно в 2006 году, когда главную роль стал играть новый стандарт SATA. Однако даже спустя 10 лет IDE все еще в строю, хотя и используется гораздо реже. Механизм применяется практически во всех старых компьютерах и ноутбуках, активен даже в системах, поддерживающих работу с AHCI.

Особенности режима AHCI

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

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

Преимущества механизма AHCI

Современные приводы с интерфейсом SATA полностью совместимы с новым режимом. Какие же преимущества есть у этого механизма? Все-таки, выбрать IDE или AHCI - что лучше? Windows 7 и более новые версии ОС от Microsoft способны работать с двумя вышеназванными протоколами. Но второй из них лучше использовать для новых систем.

Выгоды, которые получает пользователь при использовании AHCI:

  • большая скорость передачи данных;
  • отличная производительность;
  • полная совместимость с современными операционными системами;
  • возможность осуществлять «горячую» замену жестких дисков;
  • поддержка технологии NCQ (улучшает работу HDD).

Зная обо всех плюсах и минусах решения, легко сделать выбор, ставить в настройках AHCI или IDE. Что лучше будет для современного компьютера? Если он не оснащен приводами PATA, лучше установить новый режим.

Какой режим задать в настройках BIOS

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

Если взять типичную ситуацию, когда пользователь пытается установить на компьютер операционную систему Windows 7, то ему даже не придется вносить никаких изменений в BIOS, чтобы использовать новую схему. Возможно, кому-то покажется привычным работать со старым интерфейсом. Так все же, IDE или AHCI - что лучше? Windows 7 ведь позволяет использовать оба режима.

Если жесткий диск или другой накопитель подключен к материнской плате через интерфейс SATA, то следует оставить режим AHCI, заданный по умолчанию. Полная поддержка данного механизма обеспечивается в операционных системах Windows 7, 8, 10, Ubuntu 16.04 и других. Только с новым режимом возможна стабильная работа данных ОС.

Что делать, если после включения режима AHCI перестает загружаться система

Такая ситуация может возникнуть, если у пользователя установлена ОС Windows XP или старая версия Linux. Здесь не стоит вопрос, предпочесть AHCI или IDE. Что лучше будет для старой ОС? Пожалуй, предпочтительнее задать режим IDE. Можно попытаться установить в систему дополнительные драйверы, которые обеспечивают поддержку нового стандарта. Однако нет гарантии, что после данной процедуры ОС будет корректно работать.

В некоторых случаях компьютер, успешно проработавший долгое время под управлением системы Windows XP, однажды перестает загружаться. При этом пользователь не менял в BIOS режим работы накопителей. Такая ситуация может возникнуть из-за ошибок в работе базовой системы ввода-вывода. В этом случае происходит сброс настроек, активируется режим AHCI.Пользователю необходимосамостоятельно установить в настройках BIOS поддержку механизма IDE.

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

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

Вообщем ближе к делу) Для начала необходимо зайти в биос компьютере. На разных версиях биоса разные кнопки входа, обычно это del на компьютерах и F2 на ноутбуках. При загрузке компьютера обычно написано press F2 (Del) for bios. На всякий случай вот подсказка:

Как зайти в биос в различных версиях:

На компьютере:

На ноутбуке:

После того как вы зашли необходимо искать параметр Sata Configuration. В нем необходимо выбрать режим AHCI.

Заодно расскажу что это за режимы:

Существуют способы подключения IDE и SATA:

Режим IDE

Разъем IDE (Integrated Development Environment) это уже устаревший разъем (разработанный в 80-х годах), как видно на картинке, раньше использовался для подключения жестких дисков, дисководов, сидиромов и т.д. что поддерживало такие разъемы. В те времена это конечно была сумасшедшая популярность этого разъема, сейчас же конечно остается его только вспоминать и менять на старых компьютерах.

По мимо всего этого даже сами шнуры удобнее и занимаю меньше места. Разъемы сата поддерживают HotSwap и HotPlug т.е. горячую замену, что удобно в серверах. Не нужно перезагружать или выключать.

AHCI — это режим подключения SATA устройств, вот я и пришел к разгадке все статьи. Благодаря этому режиму sata устройства работают должным образом.

Чтобы и у вас все устройства работали хорошо необходимо его выбрать (конечно если у вас уже он не выбран).

Но для начала нужно выбрать в windows режим achi иначе винда у вас не запуститься! Можете конечно попробовать, но скорее всего . По этому я покажу как поставить режим achi на вндовс 7.

Как включить режим ACHI?

Это делается с помощью реестра.

Нажимаем пуск — выполнить (или WIN+R).

Вводим regedit и нажимаем enter.

Появится редактор реестра. В нем идем по пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci


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

"Бутылочное горлышко"

Известно, что одним из наиболее медленных составляющих современной вычислительной системы является основанный на классической шпиндельной системе. Сегодня появились SSD-аналоги, но они пока еще не получили массового распространения из-за слишком высокой стоимости.

Поэтому обычные HDD устанавливаются практически на каждый компьютер. В итоге получается, что память стандарта DDR3 легко передает 20 000 Мб/с; внутренняя шина центрального процессора позволяет обработать в десять раз больше данных; а винчестер со стандартом SATA-3 лишь в идеальных условиях «разгоняется» до настоящих 100 мегабайт в секунду. Не случайно рекомендуется хотя бы для системных файлов использовать производительные SSD-модели. Из всего вышесказанного следует простой вывод: именно HDD замедляет современную систему, являясь тем самым «бутылочным горлышком». А так как пользователь может легко внести изменения в способ обработки команд дисковой подсистемы, в определенной степени влияя на скорость, то часто можно услышать вопрос о том, какой режим лучше: AHCI или IDE.

Стандарты

Взаимодействие диска с остальными компонентами вычислительной системы происходит через специальный управляющий контроллер. Этот чип служит своеобразным переводчиком команд, преобразователем. До недавнего времени единственным «языком», понятным контроллеру, являлся протокол IDE.

Он возник на заре компьютерной индустрии и несколько раз модернизировался. С появлением высокоскоростных SATA-дисков потребовалась кардинальная переделка протокола. Так и возник легко справляется с возросшим потоком данных (интерфейс), поддерживает модную очередь команд NCQ и реализует возможность отключения устройства «на ходу». Итак, что такое AHCI? IDE, в котором добавлены некоторые новые возможности. Вот так все просто, на первый взгляд.

Возможности и перспективы

Так как стандарты являются обратно совместимыми (устройство SATA отлично работает по протоколу IDE), то в БИОС или его аналоге почти всегда присутствует пункт, позволяющий выбрать желаемый режим.

Во многих случаях лишь благодаря этому удается добиться нормальной работоспособности компьютера. Функция выбора режимов присутствует только в программном обеспечении тех материнских плат, которые предусматривают работу с SATA. Это все современные системы. Однако сюда же можно приписать гибридные решения, позволяющие подключать как классические IDE-устройства (РАТА, широкая гребенка разъема), так и SATA (компактный коннектор). Итак, AHCI или IDE? Что лучше? Чтобы было проще разобраться в этом, приведем список «бонусов», которые получает пользователь, активируя более современный режим:

1. по внутренним электронным цепям «контроллер диска - контроллер платы» достигает от 1.5 Гб/с (гигабит) для модификации SATA-1 до 6 в третьей ревизии. Напомним, что UDMA-6, в котором могу работать старые винчестеры, предусматривает лишь 133 Мбит/c.

2. Говоря о том, что лучше - AHCI или IDE, нельзя не указать поддержку технологии NCQ. Ее суть заключается в том, что винчестер может «вмешиваться» в очередь потока команд, перестраивая их для повышения эффективности работы.

3. Возможность «горячей» замены устройства, при которой не требуется отключение всей системы.

4. Параллельное обращение сразу ко всем дискам, без использования поочередного переключения.

Вот такой весьма заманчивый список возможностей. Неудивительно, что вопрос: «AHCI или IDE: что лучше?» является, пожалуй, одним из самых наболевших. Многие владельцы компьютеров, как это ни удивительно, все еще верят в «волшебную кнопку».

Теория и практика

Так все-таки, AHCI или IDE - что лучше? Из вышеприведенного списка можно сделать вывод, что устаревший протокол значительно проигрывает новому. Однако это не совсем так. Рассмотрим этот момент подробнее. Да, действительно, скорость передачи данных возросла в десятки раз, однако магнитные диски в винчестерах как вращались со скоростью 7200 оборотов (наиболее популярное решение), так и вращаются. Соответственно, в процессе считывания никаких революционных прорывов не произошло. Ни в каком тесте HDD пользователь не увидит 6 Гбит передачи. Даже 200 Мбит недостижимы! Исключение - твердотельные накопители. Если в системе присутствует такое устройство, то можно не разбираться с вопросом: "AHCI или IDE: что лучше?", а сразу активировать обновленный протокол. Однако, как мы указывали, из-за стоимости подобные накопители еще не стали массовыми.

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

IDE или AHCI - что лучше? Windows 7 при активировании последнего режима поддерживает подключение/отключение SATA-устройства «на ходу». Довольно удобно, особенно в серверных системах, где выключение нежелательно. Тем не менее для использования «горячей замены» рекомендуется задействовать не внутренние разъемы, а выведенные на корпус модификации SATA.

И, наконец, протокол позволяет нескольким винчестерам на шине работать одновременно, а не ожидать запросов. Именно в данном случае потенциал NCQ полностью раскрывается. Для среднестатистического компьютера не актуально.

В итоге получается, что хотя протокол AHCI, с точки зрения технологий, более интересен, тем не менее от его включения основная масса пользователей не получит ничего, кроме морального удовлетворения. Всего два исключения из общего правила: серверная система и использование SSD.

Нюансы использования

Хотя переключить режимы в БИОС можно за несколько секунд, следует учитывать один важный момент. Он состоит в следующем: если операционная система была установлена, например, с AHCI, то после перевода на IDE загрузка может оказаться невозможной. Это не правило, но чаще всего все происходит именно так. Поэтому еще до инсталляции дистрибутива нужно решить, с каким протоколом дисковой подсистемы планируется работать.

Пакеты драйверов AHCI стали интегрировать в систему лишь с Vista. Все предыдущие решения от «Майкрософт» встроенной поддержки не имеют, поэтому нужно либо использовать «сборки», либо перед установкой приготовить носитель с соответствующим драйвером. С новым стандартом отлично работает Windows 7. Переключение SATA из IDE режима в AHCI должно осуществляться из БИОС (пункт Configure SATA). В очень редких случаях может потребоваться внесений изменений в реестр.

Способ переключения

Для того чтобы попасть в БИОС, сразу после включения вычислительной системы нужно несколько раз подряд нажать кнопку Delete (персональные компьютеры) или F2 (ноутбуки). В зависимости от реализации, нужный пункт может находиться в любых разделах. Например, для его активации может потребоваться перевод Boot Mode в CSM вместо UEFI, после чего в появляется Compatible (IDE) и AHCI. Искомый пункт может находиться в разделе SATA Enhanced. Нужно внимательно просмотреть весь существующий список. После переключения следует нажать ESC и согласиться с сохранением изменений.

Итоги

Решение о том, какому именно протоколу отдать предпочтение, зависит от нескольких факторов. Прежде всего, от используемой операционной системы. От совместимости на «железном» уровне. И конечно же от нагрузки на подсистему. Чем она выше, тем предпочтительней AHCI. Если проанализировать все отзывы, то можно сказать, что оба протокола отлично работают, при правильной настройке не вызывая никаких сбоев. Тем не менее более целесообразно использовать обновленную версию. Это, так сказать, задел "на будущее", например, на покупку SSD.



Рекомендуем почитать

Наверх