Сколько бит памяти займет процессорное слово

Обновлено: 02.07.2024

Название: Основы работы с компьютером

Чтение: Приложение по основам работы с компьютером, стр. 1–11

Знакомство с двоичной нумерацией и количеством возможных комбинаций, связанных с битами и байтами

Знать три основных компонента компьютера

Понимать базовую архитектуру шины

Знайте, что ограничивает общую скорость обработки

Описать характеристики базовых систем памяти

Знать характеристики различных интерфейсов ввода-вывода

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

<ПР>
  • Получать, хранить, обрабатывать и доставлять информацию
  • Связь с другими системами
  • Разработка решений для пожаротушения
  • Проверьте состояние системы
  • <ОЛ>
  • Как работают компьютеры?
  • Внутренне все компьютеры работают в двоичной цифровой среде, т.е. 0,1 вкл/выкл

    Итак, давайте рассмотрим, что такое двоичная система счисления:

    двоичный код — это основание 2, мы знакомы с основанием 10

    в двоичном формате есть только 2 числа 0 и 1

    все остальные числа представлены комбинациями 0 и 1 (см. пример p2)

    каждая цифра представляет собой степень числа 2, т. е. единицы равны 2 0 , десятки равны 2 1 , сотни равны 2 2 и т. д.

    поэтому число 1001101 равно 1 x 2 6 + 1 x 2 3 + 1 x 2 2 + 1 x 2 0 = 64 + 8 + 4 + 1 = 77

    В 8-битной машине у нас есть 8 цифр , поэтому максимальное количество доступных комбинаций: 2 7 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 1 + 2 0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 + все нули = 256

    В общем случае формула

    где N = количество комбинаций (или чисел)

    и b= количество битов, чем больше битов, тем больше комбинаций

    Два байта вместе, как в 16-битной машине, составляют слово, 32-битная машина — это 4 байта, то есть двойное слово, а 64-битная машина — это 8 байтов, то есть четверное слово.

    Компьютеры различаются, но все они будут иметь некоторые основные компоненты, такие как ЦП, память, соединительная шина и интерфейс ввода/вывода (I/O).

    Это выполняет операции.

    Двоичный код на самом фундаментальном уровне.

    Таблицы истинности (см. стр. 4)

    (если вы добавите два числа, которые вместе превышают разрядность машины, вы получите классическую "ошибку переполнения"

    <ПР>
  • Блок управления — управляет работой ЦП в целом.
  • Арифметико-логическое устройство — выполняет основные арифметические и логические операции.
  • Внутренняя память - временное хранилище для данных во время вычислений и хранит адрес программных инструкций.
  • Системная шина – соединяет остальные три компонента.
  • ЦП работает по 3-этапному циклу

    Выбрать — получить следующую инструкцию и сохранить

    Декодировать — интерпретировать инструкции и собирать любые другие необходимые данные

    Выполнить - выполнить инструкцию и сохранить результат во внутренней памяти

    Соединяет все компоненты. Три части:

    BUS работает по 4-этапному циклу

    Расположение данных размещается на адресной шине

    Адрес сохраняется во временной памяти (освобождает адресную шину)

    Данные извлекаются и помещаются на шину данных

    Данные отправляются в ЦП

    Время движения автобуса контролируется часами. например 200 МГц означает 200 000 000 тактовых циклов в секунду. Каждый тактовый цикл является шагом в рабочем процессе. Итак, 200 млн шагов в секунду

    Каждый шаг может включать 64 бита, поэтому у вас может быть 64 x 200M = 12,8 гигабит/с

    ПЗУ — память только для чтения — программируется ультрафиолетовым светом (СППЗУ) или напряжением (ЭСППЗУ), например. CD-ROM

    ОЗУ — оперативное запоминающее устройство — возможность чтения и записи

    SRAM – статическая оперативная память – сохраняется даже после отключения питания — не требует обновления

    DRAM – динамическая RAM – требуется постоянное обновление

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

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

    например. система Pentium 233 МГц имеет тактовый цикл 1/233 МГц = 4 нс, что означает, что она может выполнять операцию каждые 4 нс. Если время доступа к памяти составляет 10 нс, система должна ждать 6 нс между операциями, чтобы дождаться доступа к памяти.

    Емкость: сколько данных можно сохранить. Измеряется в байтах (8 бит)

    Режим передачи: как данные отправляются после первого запроса (устраняет циклы)

    EDO – 2 цикла после первого запроса

    Кэш: высокоскоростная (малое время доступа) память ограниченного объема. (SRAM) В нем хранятся наиболее часто используемые данные для экономии времени. Сначала система проверяет кэш, а затем оперативную память

    Модемы, мониторы, жесткие диски, компакт-диски, мышь, клавиатура, принтер и т. д.

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

    Последовательный режим — все биты передаются в одной строке по порядку. Медленно

    Параллельный режим — биты передаются по отдельным строкам (например, 32 бита — 32 строки) Быстро

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

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

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

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

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

    Современные процессоры, включая встроенные системы, обычно имеют размер слова 8, 16, 24, 32 или 64 бита, в то время как современные компьютеры общего назначения обычно используют 32 или 64 бита. Цифровые процессоры специального назначения, такие как, например, DSP, могут использовать другие размеры, и многие другие размеры использовались исторически, включая 9, 12, 18, 24, 26, 36, 39, 40, 48 и 60 бит. Плита является примером системы с более ранним размером слова. Некоторые из самых ранних компьютеров (а также некоторые современные) использовали двоично-десятичный формат, а не обычный двоичный код, обычно с размером слова 10 или 12 десятичных цифр, а некоторые ранние десятичные компьютеры вообще не имели фиксированной длины слова.

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

    Использование слов

    В зависимости от того, как организован компьютер, единицы размера слова могут использоваться для:

    Числа с фиксированной точкой Держатели для числовых значений с фиксированной точкой, обычно целочисленных, могут быть доступны в одном или нескольких различных размерах, но один из доступных размеров почти всегда будет словом. Другие размеры, если они есть, скорее всего, будут кратными или дробными от размера слова. Меньшие размеры обычно используются только для эффективного использования памяти; при загрузке в процессор их значения обычно попадают в более крупный держатель размером со слово. Числа с плавающей запятой Держателями для числовых значений с плавающей запятой обычно являются либо слово, либо кратное слову. Адреса Держатели для адресов памяти должны иметь размер, способный выразить необходимый диапазон значений, но не быть чрезмерно большими, поэтому часто используемый размер - это слово, хотя он также может быть кратным или дробным от размера слова. Регистры Регистры процессора рассчитаны на размер, соответствующий типу данных, которые они содержат, т.е. целые числа, числа с плавающей запятой или адреса. Во многих компьютерных архитектурах используются «регистры общего назначения», которые могут хранить любой из нескольких типов данных, эти регистры должны иметь размер, чтобы хранить самые большие типы, исторически это размер слова архитектуры, хотя все более крупные регистры специального назначения имеют все большее значение. был добавлен для работы с новыми типами. Передача памяти процессору Когда процессор читает из подсистемы памяти в регистр или записывает значение регистра в память, объем передаваемых данных часто представляет собой слово. Исторически это количество битов, которое можно было передать за один цикл, в некоторых средах также называлось catena (например, Bull GAMMA 60 (fr)). В простых подсистемах памяти слово передается по шине данных памяти, ширина которой обычно равна слову или полуслову.В подсистемах памяти, использующих кеши, передача размером слова — это передача между процессором и первым уровнем кеша; на более низких уровнях иерархии памяти обычно используются более крупные передачи (кратные размеру слова). Единица разрешения адреса В данной архитектуре последовательные значения адреса обозначают последовательные единицы памяти; эта единица является единицей разрешения адреса. В большинстве компьютеров единицей измерения является либо символ (например, байт), либо слово. (Некоторые компьютеры использовали битовое разрешение.) Если единицей является слово, то можно получить доступ к большему объему памяти, используя адрес заданного размера за счет дополнительной сложности для доступа к отдельным символам. С другой стороны, если единицей измерения является байт, то отдельные символы могут быть адресованы (т. е. выбраны во время операции с памятью). Инструкции Машинные инструкции обычно имеют размер слова архитектуры, например, в архитектуре RISC, или кратны размеру «символа», который составляет его часть. Это естественный выбор, поскольку инструкции и данные обычно используют одну и ту же подсистему памяти. В гарвардских архитектурах размер слов инструкций и данных не обязательно должен быть связан, поскольку инструкции и данные хранятся в разных памяти; например, процессор электронного телефонного коммутатора 1ESS имел 37-битные инструкции и 23-битные слова данных.

    Выбор размера слова

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

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

    После появления дизайна IBM System/360, в котором использовались восьмибитные символы и поддерживались строчные буквы, стандартный размер символа (точнее, байта) стал восьмибитным. После этого размеры слов, естественно, были кратны восьми битам, причем обычно использовались 16, 32 и 64 бита.

    Архитектура переменных слов

    Ранние конструкции машин включали в себя некоторые, которые использовали то, что часто называют переменной длиной слова. В этом типе организации числовой операнд не имеет фиксированной длины, а скорее его конец обнаруживается, когда встречается символ со специальной маркировкой, часто называемой словесной меткой. Такие машины часто использовали двоично-десятичные числа для чисел. К этому классу машин относятся IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401 и IBM 1620.

    Большинство этих машин работают с одной единицей памяти за раз, и, поскольку каждая инструкция или данные имеют длину в несколько единиц, каждой инструкции требуется несколько циклов только для доступа к памяти. Эти машины часто довольно медленные из-за этого. Например, выборка инструкции в IBM 1620 Model I занимает 8 циклов только для чтения 12 цифр инструкции (в Model II это время сократилось до 6 циклов или 4 циклов, если инструкции не нужны оба адресных поля). Выполнение инструкции занимало совершенно переменное количество циклов, в зависимости от размера операндов.

    Адресация слов и байтов

    На модель памяти архитектуры сильно влияет размер слова. В частности, в качестве слова часто выбирали разрешение адреса памяти, то есть наименьшую единицу, которую можно обозначить адресом. В этом подходе значения адреса, отличающиеся на единицу, обозначают соседние слова памяти. Это естественно для машин, которые почти всегда оперируют единицами слов (или нескольких слов), и имеет то преимущество, что позволяет инструкциям использовать поля минимального размера для содержания адресов, что может позволить меньший размер инструкции или большее разнообразие инструкций. /p>

    Когда обработка байтов должна составлять значительную часть рабочей нагрузки, обычно более выгодно использовать байт, а не слово, в качестве единицы разрешения адреса. Это позволяет напрямую обращаться к произвольному символу в строке символов. Слово по-прежнему может быть адресовано, но используемый адрес требует на несколько бит больше, чем альтернатива разрешения слова.Размер слова должен быть целым числом, кратным размеру символа в этой организации. Этот подход к адресации использовался в IBM 360 и с тех пор является наиболее распространенным подходом в машинах, разработанных.

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

    • ЗАГРУЗИТЬ слово, содержащее исходный байт
    • Сдвиньте исходное слово, чтобы выровнять нужный байт по правильной позиции в целевом слове.
    • И исходное слово с маской для обнуления всех битов, кроме нужных.
    • ЗАГРУЗИТЬ слово, содержащее целевой байт
    • И целевое слово с маской для обнуления целевого байта
    • ИЛИ регистры, содержащие исходное и целевое слова, для вставки исходного байта
    • СОХРАНИТЬ результат в целевом расположении

    Кроме того, многие машины, ориентированные на слова, реализуют байтовые операции с инструкциями, используя специальные указатели байтов в регистрах или памяти. Например, указатель байта PDP-10 содержит размер байта в битах (что позволяет получить доступ к байтам разного размера), позицию бита байта в слове и адрес слова данных. Инструкции могут автоматически настраивать указатель на следующий байт, например, при операциях загрузки и размещения (сохранения).

    Степени двойки

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

    Размер семей

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

    В середине 1970-х компания DEC разработала модель VAX, которая должна была прийти на смену PDP-11. Они использовали word для 16-битной величины, а longword для 32-битной величины. Это отличалось от более ранних машин, где естественная единица адресации памяти называлась словом, а количество, равное половине слова, называлось полусловом. В соответствии с этой схемой четверное слово VAX имеет длину 64 бита.

    Другим примером является семейство x86, в котором были выпущены процессоры с тремя различными размерами слова (16-разрядные, позже 32- и 64-разрядные). Поскольку программное обеспечение обычно переносится с одной длины слова на другую, некоторые API и документация определяют или ссылаются на более старую (и, следовательно, более короткую) длину слова, чем полная длина слова на ЦП, для которого может быть скомпилировано программное обеспечение. Кроме того, аналогично тому, как байты используются для небольших чисел во многих программах, более короткое слово (16 или 32 бита) может использоваться в контекстах, где диапазон более широкого слова не требуется (особенно когда это может сэкономить значительное пространство стека или кэша). пространство памяти). Например, Microsoft Windows API поддерживает определение языка программирования WORD как 16-битное, несмотря на то, что API может использоваться на 32- или 64-битном процессоре x86, где стандартный размер слова будет быть 32 или 64 бита соответственно. Структуры данных, содержащие слова такого разного размера, обозначаются как WORD (16 бит/2 байта), DWORD (32 бита/4 байта) и QWORD (64 бит/8 байт) соответственно. Аналогичное явление развилось в языке ассемблера Intel x86 - из-за поддержки различных размеров (и обратной совместимости) в наборе инструкций некоторые мнемоники инструкций содержат идентификаторы «d» или «q», обозначающие «двойной-», «квадратный-» или "двойной-квадратный-", которые относятся к исходному 16-битному размеру слова архитектуры.

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

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

    Я готовлюсь к экзамену в конце семестра, и меня смущает следующий вопрос. Если ЦП имеет 16-битную адресную шину и 8-битные слова, сколько памяти в КБ он может адресовать? Насколько я понимаю, он может адресовать 64 КБ, однако для этого я просто использовал 2 ^ 16 = 65 536. В этом расчете никогда не учитывались 8-битные слова, поэтому я не уверен, что он правильный. И что означают 8-битные слова?

    Вы использовали его косвенно: общий объем адресуемой памяти 2^16*8 бит. Поскольку один байт = 8 битам, это 2 ^ 16 байтов, то есть 65536 байтов или 64 КиБ. Обратите внимание, что K — это префикс SI для 1000. Если вы имеете в виду 1024, используйте Ki.

    Обратите внимание на разницу между килобайтами префикса SI (1000 байт) и кибибайтами двоичного префикса (1024 байта). 2^16 = 65 536 = 64 киби ~ 65,5 кг. Искомый ответ вероятно тот, где килограмм понимается как киби, но бывают случаи, когда разница действительно имеет значение. Если вы хотите быть полностью уверенным, выберите безопасный путь и укажите количество байтов и предложите перевод в более удобные единицы, такие как килобайты или кибибайты, для удобства вашего учителя. Сравните Википедию: двоичный префикс. Микросхемы памяти обычно указывают, например, 65 536x8 бит.

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

    5 ответов 5

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

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

    Таким образом, ваш ЦП сможет адресовать 64 КБ (2^16), но сможет передать за одну операцию только 8 бит.

    Я уверен, что именно этот ответ и нужен учителю, но действительно ли он правильный? Не могли бы вы использовать что-то вроде PAE, чтобы разрешить трехуровневую иерархию (или даже больше), чтобы разрешить процессору доступ к более чем 64 КБ? Я не специалист по оборудованию, но разве Commodore 128 не смог сделать что-то подобное на 8-битном слове и 16-битной шине, разрешив переключение банков ОЗУ?

    Не совсем уверен, что понял ваше предложение "за одну операцию можно будет передать только 256Б (2^8)"? Он может передавать только 1 слово = 1 байт = 8 бит за одну операцию.

    @davidgo по-прежнему PAE требует соответствующего размера адресной шины. ЦП Intel, поддерживающие PAE, имеют 36-битную адресную шину.

    PAE — это более или менее торговая марка/функция, характерная для современных процессоров x86. Да, схемы для косвенной адресации больших объемов памяти были реализованы на протяжении веков (например, XMS), они, в конце концов, рассматривают подсистему памяти как периферийное устройство, которое можно постоянно перенастраивать для предоставления другой памяти в меньшее адресное пространство. Также см. модель сегментированной памяти старой школы x86.

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


    Но я использовал машины, где единица разрешения адреса составляла 16 бит. (Поэтому концепция имеет смысл.)

    @glglgl — это очень похоже. Я не верю, что существуют какие-либо архитектуры, в которых не используется адресная единица либо 8 бит, или их размер слова.

    Я не согласен с утверждением, что слово — это самая большая единица, которой процессор может манипулировать в целом. Intel i7 имеет 64-битную шину данных и может использовать 256-битные инструкции SIMD. Если Википедия верна, то слово относится к ширине шины данных, а не к внутренним ресурсам процессора.

    @ThomasWeller: 8088 имеет 8-битную шину данных, но все же 16-битные инструкции. Фактически это 8086 с меньшей шиной данных. Примечание: ширина шины данных и фактическая передача также различаются (подумайте о смещенных данных).

    Кроме того, что означают 8-битные слова?

    В контексте размер слова соответствует размеру адреса для описания шины памяти. В памяти есть 16 бит, поэтому она может выбирать 64-килобайтные ячейки. Затем каждое местоположение содержит 8 бит.

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

    Например, ЦП может объявить 16-битную шину (для этой цели). Он использует в своих инструкциях 16-битные адреса, и как в вашем примере имеет 64ки. Но у него 15 бит адресной шины и 16 бит шины данных. Ему нужно только 32k адресов, и он всегда получает 2 байта для каждого местоположения. (Если инструкции требуется 1 байт, она отправит адрес с отсутствующим наименьшим битом, выберет оба байта на этом шаге, а затем просмотрит наименьший бит желаемого адреса, чтобы решить, какую половину использовать.)

    Обратите внимание, что переключение банков, PAE и т. д., упомянутые другими, здесь неуместны.Блок управления памятью может использовать 16-битные адреса и иметь 20-битный аппаратный адрес, поэтому ЦП должен переключаться и сопоставлять вещи, чтобы использовать реальный диапазон 20-битных адресов микросхем ОЗУ, к которым можно обращаться.

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

    На этой странице вы узнаете об основной идее: битах, основных единицах данных в вычислениях.

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

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

    • Ложь и правда
    • Выкл. и Вкл., имитируя выключатель света.
    • Красный и зеленый, имитирующие светофор.
    • <ли>. и многое другое

    Но что, если светофору также нужно желтое значение? Заманчиво сказать, что, например, 0 вольт на проводе означает красный цвет, 1 вольт — желтый, а 2 вольта — зеленый. Но тогда у нас возникнут все проблемы электрических помех, которых цифровая абстракция призвана избежать: низкий или высокий входной сигнал интерпретируется как чистый или выключенный, но промежуточное значение слишком легко интерпретируется неправильно. (См. Модуль 6, лабораторная работа 1: Аналоговая область: Транзисторы.)

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

    first бит
    второй бит значение
    0 0 красный
    0 1 желтый
    1 0 зеленый
    1 1 (не используется)

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

    1. Убедите себя, что больше не существует комбинаций двух битов.
    2. Запишите все возможные комбинации трех битов. Сколько их?
    3. Сколько существует комбинаций четырех битов?

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

    1. Сколько именно значений может быть представлено десятью битами?
    2. Сколько битов нужно для представления дней недели?
    3. Сколько бит требуется для представления одной десятичной цифры (то есть для указания цифры от 0 до 9)?

    В байте восемь бит.

    Слово — это количество проводов, соединяющих процессор с памятью. По состоянию на 2017 год слова могут быть 32-битными или 64-битными.

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

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

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

    Сколько различных значений может быть представлено 32 битами? Вам не нужно запоминать ответ, потому что вы можете быстро приблизить его, используя тот факт, что 2 10 = 1024, что примерно равно 1000. Это означает, что каждые десять битов ширины умножают количество значений что может быть представлено примерно 1000.Таким образом, 10 бит позволяют получить около тысячи значений, 20 бит — около миллиона значений, 30 бит — около миллиарда, а 32 бита — более четырех миллиардов значений (потому что мы удваиваем миллиард еще два раза для разницы между 30 и 32). .

    Этот трюк может оказаться полезным на экзамене AP.

    Кажется, четырех миллиардов значений должно быть достаточно, но это не так, если вы астроном или банкир (или Google или Facebook). И вы узнали в Модуле 4, что 32 бит недостаточно, чтобы дать каждому компьютеру интернет-адрес. Вот почему теперь у нас есть 64-разрядные компьютеры.

    1. Примерно сколько различных значений может быть представлено в 64-битном слове? (Не используйте калькулятор, используйте хитрость!)

    Байты и символы

    Восьмибитные байты в основном используются для представления символов текста.

    1. Сколько битов нужно для представления 26 букв английского языка и десяти цифр от 0 до 9?

    Широкое использование восьмибитного кода ASCII – основная историческая причина, по которой восьмибитный байт стал стандартом. (Еще одна причина заключается в том, что компьютерные схемы могут легче всего работать с шириной, равной степени двойки.)

    В течение многих лет компьютеры использовали шестибитные коды символов, но для того, чтобы иметь как ВЕРХНИЙ РЕГИСТР, так и строчный буквы и знаки препинания, требуется семь битов. Первой официально признанной кодировкой был семибитный набор символов ASCII (американский стандартный код для обмена информацией). Он включал необязательный восьмой бит для обнаружения ошибок, который был использован для включения символов с диакритическими знаками в испанском, французском, немецком и некоторых других европейских языках. Например, в имени главного разработчика Snap!, немца Йенса Мёнига, есть символ с ударением. (Ближайший английский звук — это «u» в слове «lunch».)

    По мере распространения компьютеров и Интернета по всему миру люди хотели иметь возможность писать на китайском, японском, арабском, кабильском, русском, тамильском и т. д. Набор символов Unicode поддерживает около 1900 языков, использующих 32 современных алфавита и 107 исторических алфавитов, которые больше не используются. Полный набор символов Unicode включает 136 755 символов.

    1. Какое минимальное количество битов необходимо для представления любого символа Unicode?

    В наиболее простом представлении Unicode используется одно 32-битное слово на символ, чего более чем достаточно. Но разработчики программ считают, что это неэффективное использование компьютерной памяти, а также то, что многие старые программы, которые до сих пор используются, были написаны, когда восемь бит на символ были стандартом. Таким образом, символы Unicode обычно представляются в многобайтовом представлении, в котором исходные 128 символов ASCII занимают один байт, а для других символов может потребоваться до четырех байтов. (Можно также использовать многобайтовую последовательность, чтобы сообщить программе обработки текстов, что вы хотите использовать однобайтовые коды для представления определенного нелатинского алфавита.)

    Читайте также: