Нажмите "Enter", чтобы перейти к содержанию

32 бита это: Еще раз про IP-адреса, маски подсетей и вообще — SENETSY

Содержание

Еще раз про IP-адреса, маски подсетей и вообще — SENETSY

Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.

Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.

Однако, когда IP-адрес присваивается интерфейсу (сетевому адаптеру или как там его еще называют) компьютера или маршрутизатора, то кроме самого адреса данного устройства ему назначают еще и маску подсети. Еще раз: маска не передается в заголовках IP-пакетов.

Компьютерам маска подсети нужна для определения границ — ни за что не угадаете чего — подсети. Чтоб каждый мог определить, кто находится с ним в одной [под]сети, а кто — за ее пределами. (Вообще-то можно говорить просто «сети», часто этот термин используют именно в значении «IP-подсеть».) Дело в том, что внутри одной сети компьютеры обмениваются пакетами «напрямую», а когда нужно послать пакет в другую сеть — шлют их шлюзу по умолчанию (третий настраиваемый в сетевых свойствах параметр, если вы помните). Разберемся, как это происходит.

Маска подсети — это тоже 32-бита. Но в отличии от IP-адреса, нули и единицы в ней не могут чередоваться. Всегда сначала идет сколько-то единиц, потом сколько-то нулей. Не может быть маски

120.22.123.12=01111000.00010110.01111011.00001100.

Но может быть маска

255.255.248.0=11111111.11111111.11111000.00000000.

Сначала N единиц, потом 32-N нулей. Несложно догадаться, что такая форма записи является избыточной. Вполне достаточно числа N, называемого длиной маски. Так и делают: пишут 192.168.11.10/21 вместо 192.168.11.10 255.255.248.0. Обе формы несут один и тот же смысл, но первая заметно удобнее.

Чтобы определить границы подсети, компьютер делает побитовое умножение (логическое И) между IP-адресом и маской, получая на выходе адрес с обнуленными битами в позициях нулей маски. Рассмотрим пример 192.168.11.10/21:

11000000.10101000.00001011.00001010
11111111.11111111.11111000.00000000
———————————————————————
11000000.10101000.00001000.00000000 = 192.168.8.0

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

Адрес 192.168.8.0, со всеми обнуленными битами на позициях, соответствующих нулям в маске, называется адресом подсети. Его (обычно) нельзя использовать в качестве адреса для интерфейса того или иного хоста. Если же эти биты наоборот, установить в единицы, то получится адрес 192.168.15.255. Этот адрес называется направленным бродкастом (широковещательным) для данной сети. Смысл его по нынешним временам весьма невелик: когда-то было поверье, что все хосты в подсети должны на него откликаться, но это было давно и неправда. Тем не менее этот адрес также нельзя (обычно) использовать в качестве адреса хоста. Итого два адреса в каждой подсети — на помойку. Все остальные адреса в диапазоне от 192.168.8.1 до 192.168.15.254 включительно являются полноправными адресами хостов внутри подсети 192.168.8.0/21, их можно использовать для назначения на компьютерах.

Таким образом, та часть адреса, которой соответствуют единицы в маске, является адресом (идентификатором) подсети. Ее еще часто называют словом префикс. А часть, которой соответствуют нули в маске, — идентификатором хоста внутри подсети. Адрес подсети в виде 192.168.8.0/21 или 192.168.8.0 255.255.248.0 можно встретить довольно часто. Именно префиксами оперируют маршрутизаторы, прокладывая маршруты передачи трафика по сети. Про местонахождение хостов внутри подсетей знает только шлюз по умолчанию данной подсети (посредством той или иной технологии канального уровня), но не транзитные маршрутизаторы. А вот адрес хоста в отрыве от подсети не употребляется совсем.

Обстоятельство третье. Количество хостов в подсети определяется как 232-N-2, где N — длина маски. Чем длиннее маска, тем меньше в ней хостов.

Из данного обстоятельства в частности следует, что максимальной длиной маски для подсети с хостами является N=30. Именно сети /30 чаще всего используются для адресации на point-to-point-линках между маршрутизаторами.

И хотя большинство современных маршрутизаторов отлично работают и с масками /31, используя адрес подсети (нуль в однобитовой хоствой части) и бродкаст (единица) в качестве адресов интерфейсов, администраторы и сетевые инженеры часто попросту боятся такого подхода, предпочитая руководствоваться принципом «мало ли что».

А вот маска /32 используется достаточно часто. Во-первых, для всяких служебных надобностей при адресации т. н. loopback-интерфейсов, во-вторых, от криворукости: /32 — это подсеть, состоящая из одного хоста, то есть никакая и не сеть, в сущности. Чем чаще администратор сети оперирует не с группами хостов, а с индивидуальными машинами, тем менее сеть масштабируема, тем больше в ней соплей, бардака и никому непонятных правил. Исключением, пожалуй, является написание файрвольных правил для серверов, где специфичность — хорошее дело. А вот с пользователями лучше обращаться не индивидуально, а скопом, целыми подсетями, иначе сеть быстро станет неуправляемой.

Интерфейс, на котором настроен IP-адрес, иногда называют IP-интерфейсом или L3-интерфейсом
(«эл-три», см. Модель OSI ).

Прежде чем посылать IP-пакет, компьютер определяет, попадает ли адрес назначения в «свою» подсеть. Если попадает, то шлет пакет «напрямую», если же нет — отсылает его шлюзу по умолчанию (маршрутизатору). Как правило, хотя это вовсе необязательно, шлюзу по умолчанию назначают первый адрес хоста в подсети: в нашем случае 192.168.8.1 — для красоты.

Обстоятельство четвертое. Из сказанного в частности следует, что маршрутизатор (шлюз и маршрутизатор — это одно и то же) с адресом интерфейса 192.168.8.1 ничего не знает о трафике, передаваемом между, например, хостами 192.168.8.5 и 192.168.8.7. Очень частой ошибкой начинающих администраторов является желание заблокировать или как-то еще контролировать с помощью шлюза трафик между хостами в рамках одной подсети. Чтобы трафик проходил через маршрутизатор, адресат и отправитель должны находиться в разных подсетях.

Таким образом в сети (даже самого маленького предприятия) обычно должно быть несколько IP-подсетей (2+) и маршрутизатор (точнее файрвол, но в данном контексте можно считать эти слова синонимами), маршрутизирующий и контролирующий трафик между подсетями.

Следующий шаг — разбиение подсетей на более мелкие подсети. Полюбившуюся нам сеть 192.168.8.0/21 можно разбить на 2 подсети /22, четыре подсети /23, восемь /24 и т. д. Общее правило, как не сложно догадаться, такое: K=2X-Y, где K — количество подсетей с длиной маски Y, умещающихся в подсеть с длиной маски X.

Обстоятельство пятое. Как и любому приличному IT-шнику, администратору сети, если только он получает зарплату не за красивые глаза, положено знать наизусть степени двойки от 0 до 16.

Процесс объединения мелких префиксов (с длинной маской, в которых мало хостов) в крупные (с короткой маской, в которых много хостов) называется агрегацией или суммаризацией (вот не суммированием!). Это очень важный процесс, позволяющий минимизировать количество информации, необходимой маршрутизатору для поиска пути передачи в сети. Так, скажем, провайдеры выдают клиентам тысячи маленьких блоков типа /29, но весь интернет даже не знает об их существовании. Вместо этого за каждым провайдером закрепляются крупные префиксы типа /19 и крупнее. Это позволяет на порядки сократить количество записей в глобальной таблице интернет-маршрутизации.

Обстоятельство шестое. Чем больше длина маски, тем меньше в подсети может быть хостов, и тем большую долю занимает «съедение» адресов на адреса подсети, направленного бродкаста и шлюза по умолчанию. В частности в подсети с маской /29 (232-29 = 8 комбинаций) останется всего 5 доступных для реального использования адресов (62,5%). Теперь представьте, что вы провайдер, выдающий корпоративным клиентам тысячи блоков /29. Таким образом, грамотное разбиение IP-пространства на подсети (составление адресного плана) — это целая маленькая наука, включающая поиск компромиссов между разными сложными факторами.

При наличии достаточно большого диапазона адресов, как правило из блоков для частного использования 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, конечно, удобно использовать маски, совпадающие по длине с границами октетов: /8, /16, /24 или, соответственно, 255.0.0.0, 255.255.0.0 и 255.255.255.0. При их использовании можно облегчить работу мозгу и калькулятору, избавившись от необходимости работать с двоичной системой и битами. Это правильный подход, но не стоит забывать, что злоупотребление расслабухой редко доводит до добра.

И последнее. Пресловутые классы адресов. Дорогие товарищи, забудьте это слово вообще! Совсем. Вот уже скоро 20 лет (!), как нет никаких классов. Ровно с тех пор, как стало понятно, что длина префикса может быть любой, а если раздавать адреса блоками по /8, то никакого интернета не получится.

Иногда «матерые специалисты» любят блеснуть словами «сеть класса такого-то» по отношению к подсети с той или иной длиной маски. Скажем, часто можно услышать слово «сеть класса C» про что-нибудь вроде 10.1.2.0/24. Класс сети (когда он был) не имел никакого отношения к длине маски и определялся совсем другими факторами (комбинациями битов в адресе). В свою очередь классовая адресация обязывала иметь маски только предписанной для данного класса длины. Поэтому указанная подсеть 10.1.2.0/24 никогда не принадлежала и не будет принадлежать к классу C.

Но обо всем этом лучше и не вспоминать. Единственное, что нужно знать — что существуют разные глобальные конвенции, собранные под одной крышей в RFC3330, о специальных значениях тех или иных блоков адресов. Так, например, упомянутые блоки 10/8, 172.16/12 и 192.168/16 (да, можно и так записывать префиксы, полностью откидывая хостовую часть) определены как диапазоны для частного использования, запрещенные к маршрутизации в интернете. Каждый может использовать их в частных целях по своему усмотрению. Блок 224.0.0.0/4 зарезервирован для мультикаста и т. д. Но все это лишь конвенции, призванные облегчить административное взаимодействие. И хотя лично я крайне не рекомендую вам их нарушать (за исключением надежно изолированных лабораторных тестов), технически никто не запрещает использовать любые адреса для любых целей, покуда вы не стыкуетесь с внешним миром.

Глубина цвета. 8, 12, 14 или 16-бит: что вам действительно нужно?

«Разрядность» является одним из параметров, за которым все гонятся, но немногие фотографы действительно его понимают. Photoshop предлагает 8, 16 и 32-битные форматы файлов. Иногда мы видим файлы, отмеченные как 24 и 48-бит. И наши камеры часто предлагают 12 и 14-битные файлы, хотя вы можете получить 16 бит с камерой среднего формата. Что всё это значит, и что действительно имеет значение?

Что такое битовая глубина?

Перед тем, как сравнивать различные варианты, давайте сначала обсудим, что означает название. Бит является компьютерной единицей измерения, относящейся к хранению информации в виде 1 или 0. Один бит может иметь только одно из двух значений: 1 или 0, да или нет. Если бы это был пиксель, он был бы абсолютно черного или абсолютно белого цвета. Не очень полезно.

Для того, чтобы описать более сложный цвет, мы можем объединить несколько бит. Каждый раз, когда мы добавляем биты, количество потенциальных комбинаций удваивается. Один бит имеет 2 возможных значения 0 или 1. При объединении 2 бит вы можете иметь четыре возможных значения (00, 01, 10 и 11). Когда вы объединяете 3 бита, вы можете иметь восемь возможных значений (000, 001, 010, 011, 100, 101, 110 и 111). И так далее. В общем, число возможных вариантов будет являться числу два, возведённому в степени количества бит. Таким образом , «8-бит» = 28 = 256 возможных целочисленных значений. В Photoshop это представлено в виде целых чисел 0-255 (внутренне, это двоичный код 00000000-11111111 для компьютера).

Так «битовая глубина» определяет малейшие изменения, которые вы можете сделать, относительно некоторого диапазона значений. Если наша шкала яркости от чистого черного до чистого белого имеет 4 значения, которые мы получаем от 2-битного цвета, то мы получим возможность использовать черный, темно-серый, светло серый и белый. Это довольно мало для фотографии. Но если у нас есть достаточное количество бит, мы имеем достаточно шагов с широким диапазоном серого, чтобы создать то, что мы будем видеть как совершенно гладкий градиент от черного к белому.

Ниже приведен пример сравнения черно-белого градиента на разной битовой глубине. Данное изображение – это просто пример. Нажмите на него, чтобы увидеть изображение в полном разрешении в формате JPEG2000 с разрядностью до 14 бит. В зависимости от качества вашего монитора, вы, вероятно, сможете увидеть только разницу до 8 или 10 бит.

Как понимать битовую глубину?

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

Обратите внимание, что изображение выше черно-белое. Цветное изображение, как правило, состоит из красных, зеленых и синих пикселей для создания цвета. Каждый из этих цветов обрабатывается компьютером и монитором как «канал». Программное обеспечение, например, Photoshop и Lightroom, считают количество бит на канал. Таким образом, 8 бит означает 8 бит на канал. Это означает, что 8-битный RGB-снимок в Photoshop будет иметь в общей сложности 24 бита на пиксель (8 для красного, 8 для зеленого и 8 для синего). 16-битное RGB-изображение или LAB в Photoshop будет иметь 48 бит на пиксель и т.д.

Вы бы могли предположить, что 16-бит означает 16-бит на канал в Photoshop, но в данном случае это работает иначе. Photoshop реально используется 16 бит на канал. Тем не менее, он относится к 16-разрядным снимкам по-другому. Он просто добавляет один бит к 15-битам. Это иногда называют 15+1 бит. Это означает, что вместо 216 возможных значений (что равнялось бы 65536 возможным значениям) существует только 215+1 возможных значений, что составляет 32768+1=32769.

Таким образом, с точки зрения качества, было бы справедливо сказать, что 16-битный режим Adobe, на самом деле содержит только 15-бит. Вы не верите? Посмотрите на 16-разрядную шкалу для панели Info в Photoshop, которая показывает масштаб 0-32768 (что означает 32769 значения учитывая ноль. Почему Adobe так делает? Согласно заявлению разработчика Adobe Криса Кокса, это позволяет Photoshop работать гораздо быстрее и обеспечивает точную среднюю точку для диапазона, который является полезным для режимов смешивания.

Большинство камер позволит вам сохранять файлы в 8-бит (JPG) или от 12 до 16 бит (RAW). Так почему же Photoshop не открывает 12 или 14-битный RAW файл, как 12 или 14 бит? С одной стороны, это потребовало бы очень много ресурсов для работы Photoshop и изменение форматов файлов для поддержки других битовых глубин. И открытие 12-битных файлов в качестве 16-бит на самом деле не отличается от открытия 8-битного JPG, а затем преобразования в 16 бит. Там нет непосредственной визуальной разницы. Но самое главное, есть огромные преимущества использования формата файлов с несколькими дополнительными битами (как мы обсудим позже).

Для дисплеев, терминология меняется. Производители хотят, чтобы характеристики их оборудования звучали соблазнительно. Поэтому режимы отображения 8-бит обычно подписывают как «24-бит» (потому что у вас есть 3 канала с 8-бит каждый). Другими словами, «24-бит» («True Color») для монитора не очень впечатляет, это на самом деле означает то же самое, что 8 бит для Photoshop. Лучшим вариантом было бы «30-48 бит» (так называемый «Deep Color»), что составляет 10-16 бит на канал, хотя для многих более 10 бит на канал является излишеством.

Далее мы будем говорить о битовой глубине в терминологии Photoshop.

Сколько бит вы можете увидеть?

С чистым градиентом (т.е. наихудшими условиями), многие могут обнаружить полосатость в 9-битном градиенте, который содержит 2048 оттенков серого на хорошем дисплее с поддержкой более глубокого отображения цвета. 9-битный градиент является чрезвычайно слабым, едва уловимым. Если бы вы не знали о его существовании, вы бы его не увидели. И даже когда вы будете на него смотреть, будет не просто сказать где границы каждого цвета. 8-битный градиент относительно легко увидеть, если смотреть на него пристально, хотя вы всё ещё сможете его не замечать, если не присматриваться. Таким образом, можно сказать, что 10-битный градиент визуально идентичен 14-битному или более глубокому.

Как всё это проверить? Для наглядности создадим документ шириной 16384 пикселей, что позволяет использовать ровно 1 пиксель для каждого значения в 14-битном градиенте. Специальный алгоритм создаёт градиенты с каждой битовой глубиной от 1 до 14 на изображении. Файл PSB весит более 20GB, поэтому поделиться им нет возможности. Но можно создать изображение в формате JPEG2000 с полным разрешением. При глубине цвета 16-бит вы не увидите разницы даже при экстремальном редактировании кривых. Удивительно, как этот файл JPEG2000 сжимает оригинальное изображение с 20Gb до 2Mb.

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

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

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

Зачем использовать больше бит, чем вы можете увидеть?

Почему у нас есть варианты, даже больше, чем 10-бит в наших камерах и Photoshop? Если мы не редактировали фотографии, то не было бы никакой необходимости добавлять больше бит, чем человеческий глаз может видеть. Однако, когда мы начинаем редактирование фотографий, ранее скрытые различия могут легко вылезть наружу.

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

Почему 8-битные изображения выглядят так же, как 16-битные?

При преобразовании 16-битного изображения в 8-битное вы не увидите разницы. Если так, тогда зачем использовать 16-бит?

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

Так сколько бит действительно нужно в камере?

Изменение 4 стопов в обеспечит потерю чуть более 4 бит. Изменение 3 стопов экспозиции находится ближе к потере 2 бит. Как часто вам приходится настолько сильно корректировать экспозицию? При работе с RAW коррекция до +/- 4 стопа – это экстремальная и редкая ситуация, но такое случается, поэтому желательно иметь дополнительные 4-5 бит над пределами видимого диапазонов, чтобы иметь запас. При нормальном диапазоне 9-10 бит, с запасом нормой может быть примерно 14-15 бит.

На самом деле, вы, вероятно, никогда не будете нуждаться в таком большом количестве данных по нескольким причинам:

  • Есть не так много ситуаций, когда вы встретите идеальный градиент. Ясное голубое небо, вероятно, наиболее частый пример. Все остальные ситуации имеют большое количество деталей и переходы цветов не плавные, поэтому вы не увидите разницу при использовании различной битовой глубины.
  • Точность вашей камеры не так высока, чтобы обеспечить точность цветопередачи. Другими словами, в изображении есть шум. Из-за этого шума обычно намного сложнее увидеть переходы между цветами. Получается, что реальные изображения обычно не способны отобразить переходы цвета в градиентах, так как камера не способны запечатлеть идеальный градиент, который можно создать программно.
  • Вы можете удалить переходы цветов во время пост-обработки при помощи использования размытия по Гауссу и добавления шума.
  • Большой запас бит нужен только для экстремальных тональных поправок.

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

Интересный факт заключается в том, что многое зависит от программы, которую вы используете для постобработки. К примеру, при вытягивании теней из одного и того же изображения в Capture One (CO) и в Lightroom можно получить разные результаты. На практике оказалось, что СО больше портит глубокие тени, чем аналог от Adobe. Таким образом, если вы вытягиваете в LR, то можно рассчитывать на 5 стопов, а в CO – всего на 4.

Но всё таки, лучше избегать попыток вытянуть более 3 стопов динамического диапазона из-за шума и изменения цветового оттенка. 12-бит, безусловно, разумный выбор. Если вы заботитесь о качестве, а не размере файла, то снимайте в 14-битном режиме, если ваша камера позволяет.

Сколько бит стоит использовать в Photoshop?

На основании изложенного выше, должно быть ясно, что 8-бит – это мало. Можно сразу увидеть переходы цветов в плавных градиентах. И если вы не видите это сразу, даже скромные корректировки могут сделать этот эффект заметным.

Стоит работать в 16 бит даже если ваш исходный файл 8-битовый, например, изображения в JPG. Режим 16-бит даст лучшие результаты, поскольку он позволит свести к минимуму переходы при редактировании.

Нет никакого смысла использовать 32-битный режим, если вы не обрабатываете файл HDR.

Сколько бит нужно для интернета?

Преимущества 16 бит заключаются в расширении возможностей редактирования. Преобразование окончательного отредактированного изображения в 8 бит прекрасно подходит для просмотра снимков и имеет преимущество в создании небольших файлов для интернета для более быстрой загрузки. Убедитесь, что сглаживание в Photoshop включено. Если вы используете Lightroom для экспорта в JPG, сглаживание используется автоматически. Это помогает добавить немного шума, который должен свести к минимуму риск появления заметных переходов цвета в 8 бит.

Сколько бит нужно для печати?

Если вы печатаете дома, вы можете просто создать копию рабочего 16-битного файла и обработать его для печати, осуществив печать именно рабочего файла. Но что, если вы отправляете свои изображения через интернет в лабораторию? Многие будут использовать 16-разрядные TIF-файлы, и это отличный способ. Однако, если для печати требуют JPG или вы хотите отправить файл меньшего размера, вы можете столкнуться с вопросами о переходе на 8-бит.

Если ваша лаборатория печати принимает 16-битный формат (TIFF, PSD, JPEG2000), просто спросите у специалистов какие файлы предпочтительны.

Если вам нужно отправить JPG, он будет в 8 бит, но это не должно быть проблемой. В действительности, 8-бит отлично подходит для окончательного вывода на печать. Просто экспортируйте файлы из Lightroom с качеством 90% и цветовым пространством Adobe RGB. Делайте всю обработку перед преобразованием файла в 8 бит и никаких проблем не будет.

Если вы не видите полосатость перехода цветов на мониторе после преобразования в 8-бит, можете быть уверены, что всё в порядке для печати.

В чем разница между битовой глубиной и цветовым пространством?

Битовая глубина определяет число возможных значений. Цветовое пространство определяет максимальные значения или диапазон (обычно известные как «гамма»). Если вам нужно использовать коробку цветных карандашей в качестве примера, большая битовая глубина будет выражаться в большем количестве оттенков, а больший диапазон будет выражаться как более насыщенные цвета независимо от количества карандашей.

Чтобы посмотреть на разницу, рассмотрим следующий упрощенный визуальный пример:

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

Как цветовое пространство влияет на битовую глубину?

SRGB (слева) и Adobe RGB (справа)

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

Рекомендуемые настройки, чтобы избежать полосатости

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

Настройки камеры:

  • 14+ бит RAW файл является хорошим выбором, если вы хотите, наилучшее качество, особенно если вы рассчитываете на корректировку тона и яркости, например, увеличение яркости в тенях на 3-4 стопа.
  • 12-битный RAW файл отлично подойдёт, если вы хотите иметь меньший вес файлов или снимать быстрее. Для камеры Nikon D850 14-битный RAW файл примерно на 30% больше, чем 12-битный, так что это является важным фактором. И большие файлы могут повлиять на возможность снимать длинные серии кадров без переполнения буфера памяти.
  • Никогда не снимайте в JPG, если вы можете. Если вы снимаете какие-то события, когда нужно быстро передавать файлы и качество снимков не играет роли, то конечно Jpeg будет отличным вариантом. Также вы можете рассмотреть возможность съёмки в режиме JPG + RAW, если вам нужен более качественный файл впоследствии. Стоит придерживаться цветового пространства SRGB, если вы снимаете в JPG. Если вы снимаете в RAW, вы можете игнорировать настройки цветового пространства. Файлы RAW в действительности не имеют цветового пространства. Оно не устанавливается, пока не выполнена конвертация файла RAW в другой формат.

Lightroom и Photoshop (рабочие файлы):

  • Всегда сохраняйте рабочие файлы в 16-бит. Используйте 8 бит только для окончательного экспорта в формате JPG для интернета и печати, если этот формат удовлетворяет требованиям печатного оборудования. Это нормально использовать 8-бит для окончательного вывода, но следует избегать этого режима во время обработки.
  • Обязательно просмотрите снимок в масштабе 67% или больше, чтобы убедиться, что в градиентах нет заметных переходов цвета. В меньшем масштабе Photoshop может создавать ложную полосатость. Об этом будет другая наша статья.
  • Будьте осторожны при использовании HSL в Lightroom и Adobe Camera RAW, так как этот инструмент может создать цветные полосы. Это имеет очень мало общего с битовой глубиной, но проблемы возможны.
  • Если ваш исходный файл доступен только в 8-бит (например, JPG), вы должны немедленно преобразовать его в 16 бит перед редактированием. Последующие правки на 8-битные изображении в 16-битном режиме не будут создавать слишком явных проблем.
  • Не используйте 32-разрядное пространство, если вы не используете его для объединения нескольких RAW-файлов (HDR). Есть некоторые ограничения при работе в 32-битном пространстве, а файлы становятся в два раза больше. Лучше всего делать объединение HDR в Lightroom вместо того, чтобы использовать 32-битный режим в Photoshop.
  • Формат HDR DNG Lightroom очень удобен. Он использует 16-битный режим с плавающей точкой для того, чтобы охватить более широкий динамический диапазон с таким же количеством бит. Рассчитывая на то, что нам обычно нужно исправлять динамический диапазон в HDR только в пределах 1-2 стопов, это приемлемый формат, который повышает качество без создания огромных файлов. Конечно, не забудьте экспортировать этот RAW в 16-битном TIF/PSD, когда вам нужно продолжить редактирование в Photoshop.
  • Если вы один из немногих людей, которые должны использовать 8-разрядный рабочий режим по какой-то причине, вероятно, лучше всего придерживаться цветового пространства sRGB.
  • При использовании инструмента градиента в Photoshop, отметив опцию «сглаживание» программа будет использовать 1 дополнительный бит. Это может быть полезно при работе в 8-битных файлах.

Экспорт для интернета:

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

Печать:

  • 8-бит отлично подходит для окончательного вывода на печать, но используйте 16 бит, если печатное оборудование поддерживает это.

Монитор:

  • Стандартный монитор отлично подойдёт для большинства задач, но помните, что вы можете увидеть полосы перехода цветов из-за 8-битных дисплеев. Этих полос может на самом деле не быть в снимках. Они появляются на этапе вывода на монитор. На другом дисплее этот же снимок может выглядеть лучше.
  • Если вы можете себе это позволить, 10-битный дисплей идеально подходит для работы с фотографией. Широкий диапазон, такой как Adobe RGB также идеально подходит. Но это не обязательно. Вы можете создавать потрясающие снимки на самом обычном мониторе.

Взгляд в будущее

В данный момент выбор большей битовой глубины для вас может не иметь значения, так как ваш монитор и принтер способны работать только в 8 бит, но в будущем всё может измениться. Ваш новый монитор сможет отображать больше цветов, а печать можно осуществить на профессиональном оборудовании. Сохраняйте свои рабочие файлы в 16-бит. Этого будет достаточно, чтобы сохранить наилучшее качество на будущее. Этого будет достаточно, чтобы удовлетворить требованиям всех мониторов и принтеров, которые будут появляться в обозримом будущем. Этого диапазона цвета достаточно, чтобы выйти за пределы диапазона зрения человека.

Однако гамма – это другое. Скорее всего, у вас есть монитор с цветовой гаммой sRGB. Если он поддерживает более широкий спектр Adobe RGB или гамму P3, то вам лучше работать с этими гаммами. Adobe RGB имеет расширенный диапазон цвета в синем, голубом и зелёном, а P3 предлагает более широкие цвета в красном, желтом и зеленом. Помимо P3 мониторов существуют коммерческие принтеры, которые превышают гамму AdobeRGB. sRGB и AdobeRGB уже не в состоянии охватить полный диапазон цветов, которые могут быть воссозданы на мониторе или принтере. По этой причине, стоит использовать более широкий диапазон цвета, если вы рассчитываете на печать или просмотр снимков на лучших принтерах и мониторах позже. Для этого подойдёт гамма ProPhoto RGB. И, как обсуждалось выше, более широкая гамма нуждается в большей битовой глубине 16-бит.

Как удалить полосатость

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

Но если вы столкнетесь с полосатостью (скорее всего при переходе в 8-разрядное изображение, вы можете предпринять следующие шаги, чтобы свести эту проблему к минимуму:

  • Преобразуйте слой в смарт-объект.
  • Добавьте размытие по Гауссу. Радиус установите таким, чтобы скрыть полосатость. Радиус, равный ширине полосатости в пикселях идеален.
  • Используйте маску, чтобы применить размытие только там, где это необходимо.
  • И, наконец, добавьте немного шума. Зернистость устраняет вид гладкого размытия и делает снимок более целостным. Если вы используете Photoshop CC, используйте фильтр Camera RAW, чтобы добавить шум.

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

Следите за новостями: Facebook, Вконтакте и Telegram

Сравните 64 бита и 16 байт

Ответы

файл, правка, вид, вставка, формат, сервис, таблица, окно, справка.

random это функция возвращающая случайные числа от 1 до указанного диапазона, но отрицательных чисел тут нет, так что воспользуемся приемом:

а теперь выведи на экран все положительные, а затем отрицательные элементы — проверяй на больше/меньше нуля!

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

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

Сначала мы приведем описания 32-х и 64-х битных процессоров, чтобы разобраться, что это за зверь такой, х-битный процессор. Дело в том, что количество бит указывает на ширину регистра процессора и обозначает способ обработки информации процессором компьютера. Такой регистр представляет собой небольшое хранилище, которое используется процессором для хранения данных, к которым для оптимальной производительности компьютера ему необходимо иметь быстрый доступ. Число бит указывает на ширину данного регистра. В связи с этим 64-х битный регистр может хранить в себе больше данных, чем 32-х битный, который, в свою очередь, хранит больше данных, чем 16-ти битный или 8-ми битные регистры.

32-х битная архитектура Windows не позволяет выделять приложению более 2GB памяти. Однако, для современных игр, приложений фото- и видеоредакторов, а также виртуальных машин и т.д. требуется больший объем памяти. 64-х битные системы позволяют напрямую адресовать более 4 GB оперативной памяти, а это более чем достаточно для продуктивной работы даже самых «больших» приложений.

Интересно, что еще за 5 лет до появления компьютерных 64-х битных процессоров, консоли «Nintendo 64» и «Playstation 2» имели 64-х битные процессоры пользовательского уровня.

Основная разница между 32 и 64 битами заключается в увеличенной памяти.

Другое преимущество 64-бит Windows 7 это дополнительная защита «DEP» на уровне жесткого диска, а не программного обеспечения, как у пользователей 32 бит.

Несмотря на все преимущества 64-бит Windows7, у данного типа процессоров есть свои недостатки. В основном это обуславливается совместимостью. Для того чтобы установить Windows 7 64 бит , вам потребуется процессор, способный поддерживать эту операционную систему. Windows 7 32-бит можно установить на процессоры, способные поддерживать как 64 бит, так и 32 бит.

Кроме того, существует проблема совместимости драйверов. Этот недостаток является очень серьезным. К счастью, производители оборудования продолжают увеличивать поддержку 64-х битных операционных систем (если Ваше оборудование выпущено в последние год-два, то проблем у Вас будет не много). Но поиск драйверов для старых устройств может оказаться неразрешимой задачей, например для старого сканнера или принтера. В таком случае придется покупать новые устройства.Некоторые программы плохо «переживают» переход на 64 бита. В отличие от предыдущих версий Windows, Windows 7 х64 не поддерживает 16-ти битные приложения.

Кроме того, следует понимать, что если даже приложение является 64х битным, плагины и расширения для него могут таковыми не являться. Такие проблемы часто возникают с «Photoshop» и «Firefox». Основное приложение доступно в 64-х битном варианте, но важные плагины – нет.

Материнские платы, поддерживающие ранние 64-х битные процессоры и не поддерживающие более 4GB оперативной памяти являются редкостью. Однако, если это Ваш случай, то с переходом на 64-х битную операционную систему Вы не получите самого главного – доступа к большей памяти.

Выводы:
1) Windows7 64-разрядная система может обрабатывать больше объемы оперативной памяти (RAM) и эффективнее, чем 32-разрядная система.

2) Windows7 64-бит имеет дополнительную защиту «DEP» на уровне жесткого диска, которой нет на Windows7 32-бит.

3) Windows7 32-бит можно установить на процессоры 32-бит и 64-бит, но для установки Windows7 64-бит требуется процессор 64-бит.

4) Windows7 32-разрядная система может поддерживать 16-битные программы, в то время как Windows7 64-разрядная система не может.

Дополнительная информация:
Как определить, какая система установлена на вашем компьютере?

Вы можете посмотреть на версию установленной у Вас Windows – возможно, Вы уже используете 64-х битную операционную систему. Для этого в Windows Vista и Windows 7 кликните по Компьютеру (Computer) из меню Пуск (Start) правой кнопкой мыши и в контекстном меню выберите пункт Свойства (Properties). Вы попадете в меню системных свойств, где в разделе Система (System) Вы увидите, какая у Вас операционная система – 32-х битная или же 64-х битная.

Под Windows XP Вы можете протестировать свой процессор и узнать, можете ли Вы проапгредиться на 64-х битную Windows с помощью бесплатной программы SecurAble от Стива Гибсона (Steve Gibson). Данная утилита проверяет процессор по трем различным параметрам.

Во-первых, она проверяет, является ли процессор 64-х битным. Во-вторых, она проверяет поддержку им «DEP» (технологии безопасности, разработанной для защиты машин от атак переполнения буфера). И, наконец, в-третьих, программа проверяет наличие поддержки виртуальной машины XP под Windows 7.

В настоящий момент наиболее распространенными процессорными архитектурами являются 32 (x86) – и 64 (x86-64) – битная. Различия между ними кроется в ширине шины, а также в способе адресации памяти. Проще говоря, различие между 32 – и 64 – битными процессорами – это, словно различие между 2 – полосной дорогой и 4 – полосным шоссе. 64 – битный процессор способен обработать гораздо больше данных за единицу времени, нежели 32 – битный. Однако в отличие от дорог, которые устроены одинаково, 32 – и 64 – битный процессор устроены по-разному.

Немного технических моментов

1 бит — минимальный носитель информации (есть сигнал (1) или нет сигнала (0) – лампочка горит или не горит). Байт – это 8 битов. Килобайт – 1024 байта, мегабайт – 1024 килобайта, а гигабайт – это 1024 мегабайта. Тут вспоминается старая шутка.

— В чем разница между программистом и обычным человеком?

— Обычный человек думает, что в килобайте 1000 байт, а программист думает, что в килограмме 1024 грамма. 🙂

Двоичный код — это способ представления данных в виде комбинации двух знаков, обычно обозначаемых цифрами 0 и 1.

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

Оперативная память – память, к которой непосредственно обращается процессор. При отключении электропитания все данные из нее сотрутся, так как она энергозависима, в отличие от постоянного запоминающего устройства (ПЗУ) – жесткого диска (винчестера). Оперативная память намного быстрее жесткого диска, так как каждый байт в ней (ячейка ОЗУ) адресуется, то есть имеет свой адрес, точно так же, как имеют адреса дома в любом городе.

В 32 – битной системе адрес записывается в виде последовательности чисел (двоичного кода длиною в 32 символа). Общее количество вариантов при этом равно 2 в 32 степени, что будет 4294967296 байт или 4 ГБ. Теперь возведем 2 в 64 степень и получим 18446744073709551616 байт или 16 экзабайт (бит > байт > килобайт > мегабайт > гигабайт > терабайт > петабайт > экзабайт). Именно столько теоретически может использовать 64 – битная операционная система.

32 – битный процессор можно использовать с максимум 4 – мя ГБ оперативной памяти, в то время как у 64 – битного такого лимита практически нет (64 – битный процессор поддерживает до 128 ГБ оперативной памяти без увеличения его размеров до громоздких). По некоторым причинам в Windows лимит памяти для 32 – битного процессора ограничен тремя ГБ. Это связано с тем, что часть адресов ячеек оперативной памяти используется периферийными устройствами, прежде всего видеокартой. Интересно то, что память при этом никак не используется.

Так что если у вас 32 – битный процессор, нет смысла покупать более 3 ГБ памяти. Переход же на 64 – битную операционную систему целесообразен только в том случае, если ваш компьютер оснащен не менее, чем 4 — 5 ГБ оперативной памяти, так как 64 – битные приложения используют почти в 2 раза больше ОЗУ (оперативное запоминающее устройство), нежели 32 – битные.

Определить разрядность вашего процессора можно с помощью небольшой, простой и бесплатной утилиты CPU-Z. Если ваш процессор 64 – битный, то в наборе инструкций будет указано что – то вроде IA64, AMD64, или EM64T.

Компьютер с 64 — битным процессором более мощный, чем компьютер с 32 – битным процессором. Ранее сфера применения 64 – битных процессоров была ограничена серверами и мощными рабочими станциями, выполнявшими сложные вычисления. Они были громоздкими и потребляли большое количество электроэнергии, что делало 64 – битные процессоры дорогими и малопригодными для домашнего использования.

4 ГБ оперативной памяти при использовании 32 – битного процессора было признано достаточным для повседневного использования. Когда приложения и операционные системы стали использовать большие объемы оперативной памяти, переход на 64 – битную архитектуру стал неизбежен точно так же, как когда — то 16 – битные процессоры и приложения были заменены более быстрыми 32 – битными.

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

Если вы решили установит 64 – битную ОС, то вам понадобятся 64 – битные драйверы.

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

Для тех, кто не хочет переходить на Windows Vista или 7, следует сказать, что существует 64 – битная версия Windows XP. Однако тут следует оговориться, что у этой операционной системы есть некоторые проблемы совместимости с приложениями и драйверами. Так что лучше все — таки Windows 7, Vista или Linux.

Выводы

— Если у вас меньше 4 ГБ оперативной памяти, пользуйтесь 32 – разрядной операционной системой.

— Если у вас более 4 ГБ ОЗУ, есть смысл перейти на 64 – разрядную ОС. 64 – битных программ и драйверов в последнее время становится все больше и больше.

— Для 64 – битной операционной системы вам понадобятся 64 – битные драйверы.

— 64 – битная операционная система при установке на адекватное железо будет работать гораздо быстрее и отзывчивее.

— 32 битные приложения и игры легко запускаются в 64 – битной операционной системе (проверено на Windows 7, с XP 64 есть проблемы)

Действительно ли 32-битные технологии мертвы? | Хакадей

В то время как некоторые из нас все еще цепляются за наши любимые 8-битные микропроцессоры, ARM объявила, что убьет 32-битную архитектуру в 2022 и/или 2023 году. На канале GaryExplains на YouTube [Гэри Симс] опубликовал отличный обзор. текущего состояния 32- и 64-разрядных систем — не только для ARM, но и для процессоров Intel и AMD. И это мрачная перспектива для вас, поклонников 32-битных систем.

Прошлой осенью ARM объявила, что с 2022 года больше не будет поддержки 32-разрядных систем, а в марте этого года они сделали аналогичное объявление, но с крайним сроком в 2023 году.[Гэри] пытается разобрать эти утверждения и сделать обоснованное предположение о том, что означает это несоответствие (спойлер: он предсказывает, что скоро будет выпущено еще одно 32-битное ядро).

[Гэри] четко разбирает ситуацию с 32-битными операционными системами, такими как Linux, Windows, MacOS, Android и iOS, и то, как все они переходят на 64-битные в последние годы. Он проделал тщательную работу и пришел к выводу, что переход уже идет полным ходом. И хотя Linux и Windows не полностью отказались от поддержки 32-разрядных систем, кое-что на стене.

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

Если после просмотра презентации [Гэри] вы хотите узнать больше, ознакомьтесь с записью [Майи Пош] о последней версии ISA ARMv9 несколько недель назад.Также посмотрите презентацию 8-bit vs 32-bit от нашего главного редактора [Mike Szczys]. Несмотря на то, что он появился пять лет назад, он все еще вполне применим сегодня. Как насчет 16-разрядных микроконтроллеров — старого встроенного процессора Intel/AMD 80186, последующих процессоров 8051, таких как 80C196, 80C251 или 8051XA, последующих процессоров 6502, таких как 65C816, Z8000 Zilog, Renesas M16C и т. д. — кто-нибудь ими больше пользуется? Если это так, или если вы используете 4-битный MCU в наши дни, сообщите нам об этом в комментариях ниже.

Спасибо читателю [Feinfinger] за подсказку.32, почему я могу написать 1000000000000 (триллион) без сбоя моей машины?

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

Когда вы складываете два 8-битных числа, самое большое число, которое вы можете получить (0xFF + 0xFF = 1FE).На самом деле, если вы умножите два 8-битных числа, самое большое число, которое вы можете получить (0xFF * 0xFF = 0xFE01), по-прежнему будет 16-битным, вдвое больше 8-битного.

Теперь вы можете предположить, что x-битный процессор может отслеживать только x-биты. (Например, 8-битный процессор может отслеживать только 8 бит.) Это не точно. 8-битный процессор получает данные 8-битными порциями. (Эти «фрагменты» обычно имеют формальный термин: «слово». В 8-битном процессоре используются 8-битные слова. В 64-битном процессоре могут использоваться 64-битные слова.)

Итак, когда вы даете компьютеру 3 байта:
Байт № 1: инструкция MUL
Байт № 2: байты старшего порядка (например, 0xA5)
Байт № 3: байты младшего порядка (например, 0xCB)
Компьютер может генерировать результат длиной более 8 бит. ЦП может генерировать такие результаты:
0100 0000 0100 0010 xxxx xxxx xxxx xxxx 1101 0111
a.k.a.:
0x4082xxxxD7
Теперь позвольте мне объяснить это для вас:
0x просто означает, что следующие цифры являются шестнадцатеричными.
Сейчас я расскажу о «40» более подробно.
82 является частью регистра «А», который представляет собой последовательность из 8 бит.
xx и xx являются частью двух других регистров, называемых регистром «B» и регистром «C». Причина, по которой я не заполнил эти биты нулями или единицами, заключается в том, что инструкция «ADD» (отправляемая в ЦП) может привести к тому, что эти биты не изменятся инструкцией (тогда как большинство других битов, которые я использую в этом примере, могут измениться, за исключением некоторых битов флага).
D7 поместится в большее количество битов, называемых регистром «D».
Регистр — это просто часть памяти.Регистры встроены в ЦП, поэтому ЦП может обращаться к регистрам без необходимости взаимодействия с памятью на RAM-накопителе.

Таким образом, математический результат 0xA5, умноженный на 0xCB, равен 0x82D7.

Итак, почему биты были разделены на регистры A и D вместо регистров A и B или регистров C и D? Что ж, еще раз, это пример сценария, который я использую, который должен быть довольно похож по концепции на настоящий язык ассемблера (16-разрядный Intel x86, используемый Intel 8080 и 8088 и многими более новыми процессорами).Могут быть некоторые общие правила, такие как регистр «C», обычно используемый в качестве индекса для операций подсчета (типично для циклов), и регистр «B», используемый для отслеживания смещений, которые помогают указать области памяти. Таким образом, «A» и «D» могут быть более распространенными для некоторых общих арифметических функций.

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

Теперь вернемся к «40» в приведенном выше примере: это последовательность битов, часто называемая «регистром флагов». Каждый бит в регистре флагов имеет имя. Например, есть бит «переполнения», который ЦП может установить, если результат больше, чем пространство, которое может хранить один байт результатов. (Бит «переполнение» часто может называться сокращенным именем «OF».Это заглавная буква o, а не ноль.) Программное обеспечение может проверить значение этого флага и заметить «проблему». Работа с этим битом часто выполняется языками более высокого уровня незаметно, поэтому начинающие программисты часто не узнают, как взаимодействовать с флагами процессора. Однако программисты на ассемблере обычно могут обращаться к некоторым из этих флагов так же, как и к другим переменным.

Например, у вас может быть несколько инструкций ADD. Одна инструкция ADD может хранить 16 бит результатов в регистре A и регистре D, в то время как другая инструкция может просто хранить 8 младших битов в регистре A, игнорировать регистр D и указывать бит переполнения.Затем, позже (после сохранения результатов регистра A в основной ОЗУ), вы можете использовать другую инструкцию ADD, которая сохраняет только 8 старших битов в регистре (возможно, регистре A). Возможно, вам понадобится использовать флаг переполнения. зависит только от того, какую инструкцию умножения вы используете.

(Также часто используется флаг «недостаточное количество», если вы вычитаете слишком много, чтобы соответствовать желаемому результату.)

Просто чтобы показать вам, насколько все усложнилось:
Intel 4004 был 4-разрядным процессором
Intel 8008 был 8-разрядным процессором.У него были 8-битные регистры с именами A, B, C и D.
Intel 8086 был 16-битным процессором. У него были 16-битные регистры с именами AX, BX, CX и DX.
Intel 80386 был 32-разрядным процессором. У него были 32-битные регистры с именами EAX, EBX, ECX и EDX.
Процессоры Intel x64 имеют 64-битные регистры с именами RAX, RBX, RCX и RDX. Чипы x64 могут выполнять 16-битный код (в некоторых режимах работы) и могут интерпретировать 16-битные инструкции. При этом биты, составляющие регистр AX, составляют половину битов, составляющих регистр EAX, которые составляют половину битов, составляющих регистр RAX.Таким образом, каждый раз, когда вы меняете значение AX, вы также меняете EAX и RAX, потому что биты, используемые AX, являются частью битов, используемых RAX. (Если вы измените EAX на значение, кратное 65 536, то младшие 16 битов не изменятся, поэтому AX не изменится. Если вы измените EAX на значение, не кратное 65 536, это также повлияет на AX. .)

Флагов и регистров гораздо больше, чем те, что я упомянул. Я просто выбрал некоторые часто используемые, чтобы предоставить простой концептуальный пример.

Теперь, если вы работаете на 8-битном ЦП, при записи в память вы можете столкнуться с некоторыми ограничениями на возможность обращения к 8-битному адресу, а не к 4-битному или 16-битному адресу. Детали будут различаться в зависимости от ЦП, но если у вас есть такие ограничения, то ЦП может иметь дело с 8-битными словами, поэтому ЦП чаще всего называют «8-битным ЦП».

дистрибутивов Linux скоро перестанут поддерживать 32-битные ПК

AMD и Intel выпустили первые 64-битные процессоры для потребителей еще в 2003 и 2004 годах.Теперь, более десяти лет спустя, дистрибутивы Linux рассматривают возможность прекращения поддержки 32-разрядного оборудования.

Google уже сделал этот скачок еще в 2015 году, отказавшись от 32-битных версий Chrome для Linux.

Ubuntu — это последний дистрибутив, который планируется использовать для этого

.

Дмитрий Джон Ледков из Ubuntu недавно выдвинул предложение о прекращении поддержки 32-битной версии в списке рассылки Ubuntu. Аппаратное обеспечение, которое не может запускать 64-битное ПО, встречается все реже, а создание 32-битных образов, их тестирование и поддержка требуют времени и усилий.(В Linux архитектура «i386» является стандартной 32-разрядной архитектурой для процессоров, совместимых с Intel, а «amd64» — это 64-разрядная архитектура, изначально созданная AMD, с которой совместимы процессоры Intel.)

Ледков указывает, что Ubuntu хочет ограничить количество новых 32-битных установок с помощью Ubuntu 16.10. В следующем выпуске не будет 32-разрядного образа Ubuntu Desktop или Ubuntu Server. Программное обеспечение по-прежнему можно было установить в целях совместимости с устаревшими версиями с помощью более традиционных установщиков. От Убунту 18.10 октября 2018 года Ubuntu полностью прекратит поддержку 32-разрядного программного обеспечения и вместо этого предложит запускать его на виртуальной машине или в контейнере.

Fedora сделала аналогичный выбор. Fedora Server больше не предлагает 32-битные образы, начиная с Fedora 24. Предложение выгрузить все 32-битные образы в Fedora 24 не удалось, и Fedora 24 по-прежнему предлагает 32-битные версии Fedora Workstation. Однако Fedora больше не считает их важными. Как заявили разработчики во время встречи, никто не хочет поддерживать 32-битные образы.Я ожидаю, что Fedora перестанет выпускать 32-битные образы в течение следующих нескольких выпусков.

OpenSUSE Leap с момента своего создания даже не предлагал 32-битные образы. Председатель OpenSUSE Ричард Браун объяснил на Reddit, что не стоит поддерживать 32-разрядные версии еще три года после выпуска, потому что количество загрузок 32-разрядных выпусков неуклонно снижается. «Я знаю, что некоторые люди страстно наслаждаются своим старым 32-битным оборудованием, но я думаю, что сейчас самое время подумать о том, чтобы отказаться от него», — написал он.

32-разрядные дистрибутивы Linux все еще будут существовать

К счастью, 32-битные дистрибутивы Linux еще долго будут существовать.Недавно выпущенная Ubuntu 16.04 LTS будет поддерживаться в течение пяти лет до 2021 года. Даже после того, как многие крупные дистрибутивы Linux перестанут выпускать новые версии для 32-разрядного оборудования, будут существовать дистрибутивы Linux, специализирующиеся на поддержке этого старого оборудования. Но к тому времени больше 32-битного оборудования выйдет из строя.

8-битный микроконтроллер против 32-битного: выбор микроконтроллера, подходящего для вашей печатной платы

Захария Петерсон

|&nbsp Создано: 27 февраля 2018 г. &nbsp|&nbsp Обновлено: 4 ноября 2020 г.

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

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


8-битный и 32-битный MCB: основы микроконтроллеров

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

Арифметические операции

Одно ограничение должно быть очевидным, это ограничение на арифметические операции. 8-битный микроконтроллер обычно допускает только арифметические операции, которые выводят числа в диапазоне от 0 до 255 (или от -127 до 128), хотя большее число может быть разделено между двумя потоками.Это вносит некоторую сложность в программирование, поскольку многопоточность не происходит автоматически на аппаратном уровне.

В целом использование микроконтроллера с большей разрядностью данных позволяет выполнять вычисления с большими числами. 32-битный микроконтроллер может обрабатывать числа без знака от 0 до 4 294 967 295 (предоставлю читателю понять диапазон чисел со знаком!). Если вы используете язык программирования высокого уровня, такой как C, или проприетарную среду разработки (например, AtmelStudio), у вас должен быть доступ к библиотеке, обеспечивающей поддержку больших чисел или использование экспоненциальной записи.

Форм-фактор 8-, 16- и 32-разрядных микроконтроллеров

Если вам кажется, что 32-битный микроконтроллер всегда будет занимать больше места, чем 8-битный микроконтроллер, то это не всегда так. Некоторые 8-битные, 16-битные и 32-битные микроконтроллеры имеют одинаковый форм-фактор (например, Microchip предлагает серию микроконтроллеров с разной разрядностью, которые поставляются в корпусах TQFP-64). 8-битные микроконтроллеры поставляются в корпусах DIP, как на популярных платах Arduino.

Два общих пакета для 8-битных (слева) и 32-битных (справа) микроконтроллеров.

Встроенное программное обеспечение и использование памяти

На программном уровне типы данных, используемые в вашем коде, также определяют, какой тип микроконтроллера использовать. Например, целое число без знака, объявленное в 8-битном микроконтроллере, будет потреблять только 1 байт. Та же самая переменная в 32-битном микроконтроллере потребляет 4 байта данных. Вы можете сказать: «Подождите, 32-битный микроконтроллер имеет в 16 миллионов раз больше адресов, какая нам разница, если он использует 4 байта?» Максимальное количество доступных уникальных адресов ничего не говорит о фактическом объеме памяти, размещенной на микроконтроллере.Встроенная память обычно находится на уровне КБ, поэтому объем данных, требуемых в вашем коде, имеет значение.

Выбор между 8-разрядным и 32-разрядным микроконтроллером требует не только ширины данных. Учет основных различий между 8-битными и 32-битными микроконтроллерами поможет вам принять наилучшее решение для вашего проекта.

Скорость и память

Одним из основных преимуществ 32-разрядного микроконтроллера по сравнению с 8-разрядным микроконтроллером является его более высокая скорость обработки.Типичный 8-битный микроконтроллер обычно работает на частоте 8 МГц, а 32-битный микроконтроллер может работать на частоте до сотен МГц. Вы можете не заметить разницу в скорости обработки встроенных данных, если используете микроконтроллер для включения механического реле; тем не менее, это быстро становится очевидным, когда вы запускаете приложения, требующие больших объемов обработки данных. Например, для контроллера доступа к двери, который обрабатывает тысячи транзакций в день, требуется 32-разрядный процессор микроконтроллера.

8-битные микроконтроллеры

дешевы и просты в работе. На самом деле, они по-прежнему очень популярны спустя четыре десятилетия во многих приложениях. Но если вы работаете над продуктом, для которого требуется огромная внутренняя оперативная память (ОЗУ), вам, возможно, придется заменить 8-разрядную версию на 32-разрядную. 32-битные микроконтроллеры часто имеют в 8 раз больше оперативной памяти, чем их 8-битные собратья. Если вам нужен огромный буфер для хранения аудиоданных, то 32-контактный микроконтроллер — лучший вариант приложения для процессора.

Приобретите 32-битный микроконтроллер, если ваша конструкция не может жить без скорости.

Добавление периферийных устройств

Основы проектирования встроенных систем включают создание списка необходимых периферийных устройств на основе требований проекта. Если вам требуется Ethernet, универсальная последовательная шина (стек USB), несколько универсальных асинхронных приемо-передающих устройств (UARTS) и шина локальной сети контроллеров (CAN), 8-битного микроконтроллера будет недостаточно. Возможно, вам придется подумать о добавлении периферийных микросхем, которые могут стоить дороже, чем один только 32-разрядный микроконтроллер.

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

Проектирование оборудования и кривая обучения

Справедливо сказать, что печатная плата с 32-битным микроконтроллером, который обычно имеет более 100 контактов, сложнее, чем 8-битный, который редко превышает 30. С точки зрения сборки, паять корпус SOIC определенно проще, чем четырехъядерный. Плоский корпус (QFP) или корпус с шариковой решеткой (BGA).Также меньше проблем с качеством при более широких шагах в корпусе SOIC. Если для вашего проекта достаточно 8-битного микроконтроллера, не выбирайте 32-контактный микроконтроллер. В противном случае используйте предварительно созданные посадочные места в программном обеспечении для проектирования печатных плат, чтобы сократить время проектирования.

При поиске руководств по программированию для микроконтроллеров вы обнаружите, что большинство руководств посвящены 8-битным микроконтроллерам, таким как 8051 или Arduino, популярным 8-битным платам микроконтроллеров. Это связано с тем, что проще начать работу с 8-битным микроконтроллером.32-битный микроконтроллер имеет более сложную архитектуру и требует больше времени для ознакомления. Если вы создаете простой счетчик производства кода, нерентабельно просить инженера по прошивке изучить микроконтроллеры в течение недели, когда он может установить всю прошивку гораздо дешевле, используя 8-битный микроконтроллер.

Ожидайте более крутую кривую обучения с 32-разрядными микроконтроллерами. Автор редакционных прав: goodcat / Shutterstock.com

Приложения для 32-разрядных микроконтроллеров

Существует множество приложений для 32-битного микроконтроллера, но здесь следует обсудить, когда не следует использовать 32-битный микроконтроллер.В общем, любое приложение, требующее вычислений, которые неизбежно связаны с большими числами и которые должны выполняться быстрее, должно использовать 16-битный или 32-битный микроконтроллер. Некоторые примеры операций включают вычисления БПФ, обработку изображений, высококачественное аудио или видео, а также приложения для граничных вычислений. Некоторые задачи с интенсивным использованием памяти и обработки, связанные с машинным обучением или искусственным интеллектом, лучше реализовать с помощью чего-то более мощного, например микроконтроллера ARM или одноплатного компьютера.

Если вам нужно собрать измерения аналоговых сигналов, 32-разрядный микроконтроллер не обязательно лучше, чем 8-разрядный микроконтроллер.Разрядность, указанная для микроконтроллера, не эквивалентна разрядности встроенного аналого-цифрового преобразователя (АЦП). Коммерчески доступные микроконтроллеры будут включать встроенный АЦП с разрядностью 8, 10, 12 или 16 бит.

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

Выберите лучший микроконтроллер для вашей печатной платы

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

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

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован.