В каждой области науки и техники существуют фундаментальные идеи или принципы, определяющие на многие годы вперёд её содержание и направление развития. В компьютерных науках роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга двумя крупнейшими учёными 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) выполнение команды.
Этот цикл повторяется до достижения команды, означающей окончание выполнения программы, решающей некоторую конкретную задачу. В современных компьютерах по завершении работы программы управление передаётся операционной системе.
Оперативная память компьютера
Оперативная память (англ. RAM — Random Access Memory) — память с произвольным доступом — это быстрое запоминающее устройство, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных.
Оперативная и кэш-память является энергозависимыми — данные хранятся в них временно — до выключения электропитания компьютера, причем для динамической памяти (в отличие от статической) требуется постоянное обновление (регенерация) данных.
Наиболее распространенным типом схем памяти являются DRAM (динамическая память). В этих воспоминаниях значение каждого бита хранится в крошечном конденсаторе. Эти конденсаторы разряжаются — и очень быстро, примерно через 1 мс — поэтому их содержимое может быть потеряно. Для предотвращения этого специальные цепи периодически перезаряжают конденсаторы. Название памяти, «динамическая», происходит от этого непрерывного процесса перезарядки.
Оперативная память современного компьютера разделена на несколько типов. Хотя в основе всех типов памяти лежит обычная ячейка памяти, представляющий собой комбинацию из транзистора и конденсатора, благодаря различным внешним интерфейсам и устройствам взаимодействия с компьютером модули памяти они все же отличаются друг от друга.
Это наиболее дешевый способ производства ячеек памяти. Состояние конденсатора определяет, содержит ячейка «0» или «1», но само наличие конденсатора является причиной некоторых ограничений динамической памяти.
Заряженный конденсатор эквивалентен логической «1», разряженный — логическому «0». Однако впоследствии конденсатор разряжается, и поэтому необходимо время от времени обновлять его заряд. Необходимый для этого ток очень мал, так что нужно немного времени, чтобы конденсатор небольшой емкости был заряжен снова. Но во время этого процесса к ячейке памяти обращаться нельзя. Производители динамической памяти говорят, что подобное восстановление должно проводиться каждые 64мс. Но самая большая проблема с оперативной памятью в том, что при операции считывания из ячейки конденсатор теряет свой заряд, то есть считывание деструктивное, и ячейка после считывания информации должна быть восстановлена.
Таким образом, каждый раз при считывании информации должна проводиться и его запись. В результате увеличивается время циклического доступа, и повышается латентность.
Латентность — это простой в работе или это время, затрачиваемое на считывание из памяти одного слова данных (восьми байт) (измеряется в циклах). Чем ниже латентность оперативной памяти, тем меньше центральный процессор будет находиться в состоянии простоя. Полная латентность состоит из программной и аппаратной составляющих.
В модулях статической памяти такая проблема отсутствует. Одна ячейка статической памяти состоит из 4 транзисторов и двух резисторов, и в ячейке SRAM сохраняют данные не путем емкостной зарядки (как в DRAM), а путем переключения транзисторов в нужное состояние, подобно транзисторам в CPU. В отличие от динамической памяти — статическая память не является деструктивной. Ячейка статической памяти (кэш памяти) состоит из 4-х транзисторов и 2-х резисторов.
Массовое распространение получили следующие виды оперативной памяти DDR (уже не пользуется большим спросом), DDR2, DDR3, DDR4.
Внешний вид модулей памяти DDR, DDR2, DDR3
В каждом модуле оперативной памяти содержится также специальная микросхема SPD. В этой микросхеме хранятся данные о модуле памяти: дата изготовления модуля, основные характеристики модуля и тому подобное.
Кэш память
Персональные компьютеры также имеют скрытую память. Фактически, из-за разницы в скорости процессоров и схем основной памяти, большинство персональных компьютеров имеют два разных типа кэша, известных как «Уровень 1» (уровень 1 или L1) и «Уровень 2». Уровень 2 или L2 кэш).
L1 кэш-память
Кэш-память уровня 1 — это не что иное, как память в самом процессоре. Первым процессором, который содержал кэш-память, был Intel 80486, 8 Кб. Тогда все процессоры персональных компьютеров содержали латентную память размером до 32 Кб. Внутри кэш L1 делится на 16 или 32 байта.
Кэш L1 содержит адреса памяти, которые соответствуют данным и машинным командам. Он часто делится на два раздела для этих двух типов адресов. Машинные команды, выполняемые внутри процессора, особенно полезно кэшировать, когда процессор имеет конвейерную архитектуру, которая обрабатывает несколько команд одновременно.
Кэш-память второго уровня
Кэш уровня 2 больше по размеру, чем L1, но не так быстр, и находится на материнской плате компьютера. Как мы уже говорили, его схемы в основном состоят из статической памяти. Кэш-память уровня 2 обычно имеет размер до 1 Мб, но его максимальный размер также зависит от материнской платы.
Память DDR
Память DDR отличается от предыдущих видов памяти одним важным нововведением: теперь данные (но не адреса) можно получать и передавать два раза за такт — по убыванию и нарастающем фронтах сигнала. Для памяти DDR общепринятыми являются несколько обозначений: например DDR-266 или РС-2100.
Обозначения имеют разные смыслы: первое указывает частоту, с которой передаются данные (в нашем случае 266 МГц, при этом модуль работает на частоте 133MГц), второе — теоретическую пропускную способность модуля памяти (2100MBps). Второе обозначение используется чаще из маркетинговых соображений.
Схема передачи данных в микросхеме памяти DDR-400 (а), DDR2-800 (б), DDR3-1600 (в): Memory Cell Array — массив ячеек памяти; I / OBuffers — буфер ввода вывода данных; Data Bus — шина данных
Память DDR2
Память этого стандарта использовалась в платформе Socket 775. По сути DDR2 память не имеет кардинальных отличий от DDR. Однако в то время как DDR осуществляет две передачи данных по шине за такт, DDR2 выполняет четыре таких передачи. При этом, построена DDR2 из таких же ячеек памяти, как и DDR, а для удвоения пропускной способности используется техника мультиплексирования.
Само по себе ядро чипов памяти продолжает работать на той же самой частоте, на которой оно работало в DDR. Увеличивается только частота работы буферов ввода-вывода данных, а также расширяется шина, связывающая ядро памяти с буферами ввода/вывода данных ( I/O Buffers). На буфера ввода / вывода возлагается задача мультиплексирования. Данные, поступающие из ячеек памяти по широкой шине, уходят из них по шине обычной ширины, но с частотой, вдвое превышает частоту шины DDR. Таким способом достигается возможность очередного увеличения пропускной способности памяти без увеличения частоты работы самих ячеек памяти. То есть, фактически, ячейки памяти DDR2-400 работают с той же частотой, что ячейки памяти DDR200 или PC100 SDRAM. Однако столь простой метод увеличения пропускной способности памяти имеет и свои отрицательные стороны. В первую очередь — это рост латентности. Очевидно, что латентность не определяется ни частотой работы буферов ввода / вывода, ни шириной шины, по которой данные поступают из ячеек памяти.
Память DDR3
Передача данных по-прежнему осуществляется по обоим полупериодах синхросигнала на удвоенной «эффективной» частоте относительно собственной частоты шины памяти. Только рейтинги производительности выросли в 2 раза, по сравнению с DDR2. Типичными скоростными категориями памяти нового стандарта DDR3 являются разновидности от DDR3-800 до DDR3-1600 и выше. Очередное увеличение теоретической пропускной способности компонентов памяти в 2 раза вновь связано со снижением их внутренней частоты функционирования во столько же раз. Поэтому отныне, для достижения темпа передачи данных со скоростью 1 бит / такт по каждой линии внешней шины данных с «эффективной» частотой в 1600 МГц используемые 200-МГц микросхемы должны передавать по 8 бит данных за каждый свой такт. То есть,
Однако у данного типа памяти есть свои недостатки:
- наряду с ростом пропускной способности выросла также и латентность памяти;
- высокая цена модулей памяти.
Память DDR 4
На сегодня это основной тип памяти, который приобрел массовое применение. Первые тестовые образцы DDR4 были представлены в середине 2012 года фирмами Hynix, Micron и Samsung.
Micron выпустила первые опытные модули памяти, работающие на частоте 2400 МГц. Микросхемы от Hynix были созданы с использованием 38-нм техпроцесса. Модели работают на тактовой частоте 2400 МГц при напряжении питания 1,2 В. Подобная память может обрабатывать до 19,5 Гб данных в секунду.
Благодаря 30 нм техпроцессу память DDR4 от Samsung имела объем 8 и 16ГБ и тактовую частоту 2133 МГц. 16 ГБ планки имеют два ряда чипов памяти, в отличие от привычного одного ряда. К тому же, они располагаются на печатной плате ближе друг к другу, что позволяет вместить ее два дополнительных чипа памяти с каждой стороны. Samsung обещает, что с переходом на передовой 20 нм техпроцесс, появится возможность создания модулей памяти объемом 32 ГБ. Модули памяти DDR4 от Samsung, работают с напряжением 1,2 В, в отличие от DDR3 планок, которые работают на 1,35 В. Это небольшая разница, позволяет экономить энергию на 40%.
Рекомендации по выбору модулей памяти:
При производстве модулей памяти, как правило, одна фирма выпускает микросхемы (чипы), а другая делает сами модули (монтаж и пайка). Производителей чипов в мире насчитывается не более 10. Крупные производители чипов: Samsung, Mиcron, LG, Hynиx, Toshиba, Nec, Texas Instruments проводят тщательное тестирование готовой продукции, но полный цикл тестирования проходят далеко не все чипы. Исходя из этого, продукцию этих компаний можно условно разделить на три категории: класса А, В и С.
Первая — готовы микросхемы, прошедшие полный цикл тестирования (т.н. чипы класса A, примерно 10% от всей продукции) — считаются чипами высшего качества и самые надежные. Они также и самые дорогие, поскольку обеспечивают надежную работу в любых условиях. Эта категория чипов используется известными производителями модулей памяти.
Вторая (чипы класса B) — модули памяти с небольшими дефектами, на этапе тестирования которых были обнаружены ошибки. Эти чипы в большом количестве поставляются производителям дешевых модулей памяти, попадая затем на свободный рынок. Вполне может случиться, что модули, изготовленные на основе микросхем класса B, будут быстро и надежно работать, однако в системах, где нужна, прежде всего, надежность, подобные модули не применяются.
Третья (чипы класса C), которые вообще не тестировались производителем на скорость и надежность. Понятно, что на рынке такая продукция имеет наименьшую стоимость, поскольку вся ответственность за тестирование ложится на производителей модулей. Именно такие микросхемы используют производители дешевой памяти класса noname, а стабильность работы этих изделий вызывает большие сомнения. Надежность готового модуля памяти определяется совокупностью многих факторов. В частности, это количество слоев печатной платы (PCB), качество электронных компонентов, грамотное разведение цепей, а также технология производственного процесса. Мелкие производители модулей для снижения цены готовых изделий экономят на мелких компонентах, зачастую просто не впаянных на модуль.
Основная память на ПК организована в цепи типа SIMM или DIMM. Существуют различные виды таких схем, которые отличаются скоростью доступа к данным в памяти.
На персональном компьютере имеется кэш память на двух уровнях: первый уровень быстрее и меньше по размеру и расположен внутри процессора, а второй — на материнской плате.