Кодирование информации

В каждой области науки и техники существуют фундаментальные идеи или принципы, определяющие на многие годы вперёд её содержание и направление развития. В компьютерных науках роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга двумя крупнейшими учёными XX века — Джоном фон Нейманом и Сергеем Алексеевичем Лебедевым.

Принцип — основное, исходное положение какой-нибудь теории, учения, науки и пр.

Принципы Неймана-Лебедева — базовые принципы построения ЭВМ, сформулированные в середине прошлого века, не утратили свою актуальность и в наши дни.

Джон фон Нейман (1903-1957) — американский учёный, сделавший важный вклад в развитие целого ряда областей математики и физики. В 1946 г., анализируя сильные и слабые стороны ЭНИАКа, совместно с коллегами пришёл к идее нового типа организации ЭВМ.

Сергей Алексеевич Лебедев (1902-1974) — академик, основоположник вычислительной техники в СССР, главный конструктор первой отечественной электронной вычислительной машины МЭСМ, автор проектов компьютеров серии БЭСМ (Большая Электронная Счётная Машина), разработчик принципиальных положений суперкомпьютера «Эльбрус». В 1996 году посмертно награждён медалью «Пионер компьютерной техники» — самой престижной наградой международного компьютерного сообщества.

Рассмотрим сущность основных принципов Неймана-Лебедева:

1) состав основных компонентов вычислительной машины;
2) принцип двоичного кодирования;
3) принцип однородности памяти;
4) принцип адресности памяти;
5) принцип иерархической организации памяти;
6) принцип программного управления.

Первый принцип определяет состав основных компонентов вычислительной машины.

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

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

Рис. 2.5. Функциональная схема компьютеров первых поколений

Его информационным центром является процессор:

• все информационные потоки (тонкие стрелки на рисунке) проходят через процессор;
• управление всеми процессами (толстые стрелки на рисунке) также осуществляется процессором.

Такие блоки есть и у современных компьютеров. Это:

процессор, состоящий из арифметико-логического устройства (АЛУ), выполняющего обработку данных, и устройства управления (УУ), обеспечивающего выполнение программы и организующего согласованное взаимодействие всех узлов компьютера;
память, предназначенная для хранения исходных данных, промежуточных величин и результатов обработки информации, а также самой программы обработки информации. Различают память внутреннюю и внешнюю. Основная часть внутренней памяти используется для временного хранения программ и данных в процессе обработки. Такой вид памяти принято называть оперативным запоминающим устройством (ОЗУ). Ещё одним видом внутренней памяти является постоянное запоминающее устройство (ПЗУ), содержащее программу начальной загрузки компьютера. Внешняя или долговременная память предназначена для длительного хранения программ и данных в периоды между сеансами обработки;
устройства ввода, преобразующие входную информацию в форму, доступную компьютеру;
устройства вывода, преобразующие результаты работы компьютера в форму, доступную для восприятия человеком.

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

Рассмотрим суть принципа двоичного кодирования информации.

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

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

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

В 1958 г. в Московском государственном университете им. М. В. Ломоносова под руководством И. П. Брусенцова был создан троичный компьютер «Сетунь» (рис. 2.6). В нём применялась уравновешенная троичная система счисления, использование которой впервые в истории позволило представлять одинаково просто как положительные, так и отрицательные числа.

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

Рис. 2.6. ЭВМ «Сетунь»

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

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

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

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

Команды и данные размещаются в единой памяти, состоящей из ячеек, имеющих свои номера (адреса). Это принцип адресности памяти.

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

Разрядность ячеек памяти (количество битов в ячейке) у компьютеров разных поколений была различной. Основой оперативной памяти современных компьютеров является восьмибитная ячейка. Ячейка такой разрядности может быть использована для работы с одним символом. Для хранения чисел используется несколько последовательных ячеек (четыре — в случае 32-битного числа).

На современных компьютерах может одновременно извлекаться из памяти и одновременно обрабатываться до 64 разрядов (т. е. до восьми байтовых (восьмибитных) ячеек). Это возможно благодаря реализации на них принципа параллельной обработки данных — одновременного (параллельного) выполнения нескольких действий.

Можно выделить два основных требования, предъявляемых к памяти компьютера:
1) объём памяти должен быть как можно больше;
2) время доступа к памяти должно быть как можно меньше.

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

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

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

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

Главное отличие компьютеров от всех других технических устройств — это программное управление их работой.

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

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

• какое выполнить действие;
• из каких ячеек считать операнды (данные, участвующие в операции);
• в какую ячейку записать результат операции.

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

1) чтение команды из памяти и её расшифровка;
2) формирование адреса очередной команды;
3) выполнение команды.

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

Зачем кодировать информацию?

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

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

ASCII

Самым первым компьютерным стандартом кодирования символов стал ASCII (полное название — American Standart Code for Information Interchange). Для кодирования любого символа в нём использовали всего 7 бит. Как вы помните, что закодировать при помощи 7 бит можно лишь 27 символов или 128 символов. Этого достаточно, чтобы закодировать заглавные и прописные буквы латинского алфавита, арабские цифры, знаки препинания, а так же определенный набор специальных символов, к примеру, знак доллара — «$». Однако, чтобы закодировать символы алфавитов других народов (в том числе и символов русского алфавита) пришлось дополнять код до 8 бит (28=256 символов). При этом, для каждого языка использовалась свой отдельная кодировка.

UNICODE

Нужно было спасать положение в плане совместимости таблиц кодировки. Поэтому, со временем были разработаны новые обновлённые стандарты. В настоящее время наиболее популярной является кодировка под названием UNICODE. В ней каждый символ кодируется с помощью 2-х байт, что соответствует 216=62536 разным кодам.

Из чего состоит оперативная память?

Теперь вернемся к нашей памяти, она представляет собой большую группу регистров, которые хранят данные. Существует SRAM (статическая память) и DRAM (динамическая память). В статической памяти регистры представлены в виде триггеров, а в динамический в виде конденсаторов, которые со временем могут терять заряд. Сегодня в ОЗУ используется именно DRAM, где каждая ячейка — это транзистор и конденсатор, который при отсутствии питания теряет все данные. Именно поэтому, когда мы отключаем компьютер, оперативная память очищается. Все драйвера и другие важные программы компьютер в выключенном состоянии хранит на SSD, а уже при включении он заносит необходимые данные в оперативную память.

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

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

Кодирование текстовой информации и компьютеры

Если смотреть на текст глазами компьютера, то в тексте нет предложений, абзацев, заголовков и т. д., потому что весь текст просто состоит из отдельных символов. Причем символами будут являться не только буквы, но и цифры, и любые другие специальные знаки (+, -,*,= и т. д.). Что самое интересное, даже пробелы, перенос строки и табуляция — для компьютера это тоже отдельные символы.

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

Мы вводим текст в компьютер при помощи клавиатуры, символы которой мы прекрасно понимаем. Нажимая на какую-то букву, мы отправляем в оперативную память компьютера двоичное представление нажатых клавиш. Каждый отдельный символ будет представлен 8-битной кодировкой. Например буква «А» — это «11000000». Получается, что один символ — это 1 байт или 8 бит. При такой кодировке, путем нехитрых подсчетов можно посчитать, что мы можем зашифровать 256 символов. Для кодирования текстовой информации данного количества символов более чем предостаточно.

Кодирование текстовой информации в компьютерных устройствах сводится к тому, что каждому отдельному символу присваивается уникальное десятичное значение от 0 и до 255 или его эквивалент в двоичной форме от 00000000 и до 11111111. Люди могут различать символы по их внешнему виду, а компьютерное устройство только по их уникальному коду.

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

Кодирование текстовой информации и компьютеры

Представление и устройство памяти персонального компьютера

Скорее всего, вы знаете, что внутренняя память компьютера состоит из двух частей – оперативной и основной:

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

Чтобы иметь представление, как работает внутренняя память компьютера, и как её использовать, нужно заглянуть внутрь системного блока. Здесь можно провести аналогию с тетрадным листом “в клеточку”. Каждая клетка содержит в себе одно из двух состояний – 0 или 1. Если в ячейке стоит 1, то это говорит о том, что данная ячейка внутренней памяти включена, если 0, то выключена. Этот способ представления информации называется цифровым кодированием.

Представление памяти пк

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

Таблицы кодировок [ править ]

На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти [math]32[/math] символа входили только управляющие символы и строчные буквы английского алфавита.

С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой семибитной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение [math]256[/math] символов: [math]128[/math] основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.

Но для многих языков (например, арабского, японского, китайского) [math]256[/math] символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE.

Базовые понятия

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

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

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

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

Двоичный код использует алфавит, который состоит из двух символов – «0» и «1» .

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

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

Для понимания обычных букв кириллицы или латиницы они превращаются в набор нолей и единиц.

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

Все эти действия выполняются за тысячные доли секунды.

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

6.16.9 Кодирование вариантов Существуют два однобайтовых варианта, кодируемых следующим образом:No Operation 00000001End of Option List 00000000Оставшиеся варианты задаются несколькими битами. Каждый начинается октетом типа и октетом длины.Для рассматриваемых вариантов возникает следующий

6.16.13 Кодирование Timestamp Вариант Timestamp (временная метка) содержит указатель, подполе переполнения и подполе флага. Подполе флага определяет один из трех возможных для временной метки форматов.Если в подполе флага содержится 0, то при каждом попадании в выделенном месте

Вопросы и ответы по кодированию

Вопросы

Есть ли разница между кодированием и программированием?

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

Трудно ли научиться программировать?

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

Какие языки программирования легче всего выучить?

Если вы новичок, возможно, вы захотите начать с трёх самых простых языков для изучения. Это HTML, CSS и JavaScript.

Сколько зарабатывают кодеры?

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector