Внутреннее устройство тракта данных типичного фон-неймановского процессора иллюстрирует рисунок. Тракт данныхсостоит из регистров (обычно от 1 до 32), арифметико-логического устройства(АЛУ) и нескольких соединительных шин. Содержимое регистров поступает во входные регистры АЛУ, которые на рисунке обозначены буквами А и В. В них находятся входные данные АЛУ, пока АЛУ производит вычисления. Тракт данных – важная составная часть всех компьютеров.
АЛУ выполняет сложение, вычитание и другие простые операции над входными данными и помещает результат в выходной регистр. Содержимое этого выходного регистра может записываться обратно в один из регистров или сохранятся в памяти, если это необходимо. Рисунок иллюстрирует операцию сложения. Отметим, что входные и выходные регистры есть не у всех компьютеров.
Этот процесс называется циклом тракта данных.В какой-то степени он определяет, что может делать машина. Чем быстрее происходит цикл тракта данных, тем быстрее компьютер работает.
Рисунок – Тракт данных обычной фон-неймановской машины
Выполнение команд.Центральный процессор выполняет каждую команду за несколько шагов:
1. Вызывает следующую команду из памяти и переносит ее в регистр команд.
2. Меняет положение счетчика команд, который после этого указывает на следующую команду.
3. Определяет тип вызванной команды.
4. Если команда использует слово из памяти, определяет, где находится это слово.
5. Переносит слово, если это необходимо, в регистр центрального процессора.
6. Выполняет команду.
7. Переходит к шагу 1, чтобы начать выполнение следующей команды.
Такая последовательность шагов (выборка – декодирование – выполнение)является основой работы всех компьютеров.
4.2 Основная память. Память –это тот компонент компьютера, в котором хранятся программы и данные. Можно также употреблять термин запоминающее устройство. Без памяти, откуда процессоры считывают и куда записывают информацию, не было бы цифровых компьютеров со встроенными программами.
Бит.Основной единицей хранения данных в памяти является двоичный разряд, который называется битом.Бит может содержать 0 или 1. Эта самая маленькая единица памяти. (Устройство, в котором хранятся только нули, вряд ли могло быть основой памяти. Необходимы по крайней мере два значения.)
Адреса памяти.Память состоит из ячеек,каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом.По адресу программы могут ссылаться на определенную ячейку. Если память содержит п ячеек, они будут иметь адреса от 0 до п - 1. Все ячейки памяти содержат одинаковое число бит.
Ячейка – минимальная единица памяти, к которой можно обращаться. В последние годы практически все производители выпускают компьютеры с 8-разрядными ячейками, которые называются байтами.Байты группируются в слова.В компьютере с 32-разрядными словами на каждое слово приходится 4 байт, а в компьютере с 64-разрядными словами – 8 байт. Такая единица как слово, необходима, поскольку большинство команд производят операции над целыми словами (например, складывают два слова).
4.3 Кэш-память.Процессоры всегда работали быстрее, чем память. Разработчики памяти обычно используют новые технологии для увеличения емкости, а не быстродействия, что делает разрыв еще большим. На практике такое несоответствие в скорости работы приводит к тому, что, когда процессор обращается к памяти, проходит несколько машинных циклов, прежде чем он получит запрошенное слово. Чем медленнее работает память, тем дольше процессору приходится ждать, тем больше циклов проходит.
Самый простой способ решения проблемы – начать считывать информацию из памяти и при этом продолжать выполнение команд, но если какая-либо команда попытается использовать слово до того, как оно считано из памяти, процессор должен приостановить работу. Чем медленнее работает память, тем чаще будет возникать такая ситуация и тем больше окажется время простоя процессора. Например, если отсрочка составляет 10 циклов, весьма вероятно, что одна из 10 следующих команд попытается использовать слово, которое еще не считано из памяти.
На самом деле эта проблема не технологическая, а экономическая. Инженеры знают, как создать память, которая работает так же быстро, как процессор. Однако ее приходится помещать прямо на микросхему процессора (поскольку информация через шину поступает очень медленно). Размещение памяти большого объема на микросхеме процессора делает его больше и, следовательно, дороже, и даже если бы стоимость не имела значения, все равно существуют ограничения на размеры создаваемых процессоров. Таким образом, приходится выбирать между быстрой памятью небольшого объема и медленной памятью большого объема.
Существуют технологии, объединяющие небольшую и быструю память с большой и медленной, что позволяет по разумной цене получить память и с высокой скоростью работы, и большой емкости. Память небольшого объема с высокой скоростью работы называется кэш-памятью.
Основная идея кэш-памяти проста: в ней находятся слова, которые чаще всего используются. Если процессору нужно какое-нибудь слово, сначала он обращается к кэш-памяти. Только в том случае, если слова там нет, он обращается к основной памяти. Если значительная часть слов находится в кэш-памяти, среднее время доступа значительно сокращается.
Рисунок – Кэш-память по логике вещей должна находиться между процессором и основной памятью
Кэш-память очень важна для высокопроизводительных процессоров. Однако здесь возникает ряд вопросов. Первый вопрос – объем кэш-памяти. Чем больше объем, тем лучше работает память, но тем дороже она стоит.
Сборка модулей памяти и их типы.Со времен появления полупроводниковой памяти и до начала 90-х годов все микросхемы памяти производились, продавались и устанавливались в виде отдельных микросхем. Эти микросхемы вмещали от 1 Кбит до 1 Мбит информации и выше. В первых персональных компьютерах часто оставлялись пустые разъемы, чтобы покупатель в случае необходимости мог вставить дополнительные микросхемы памяти.
В настоящее время распространен другой подход. Группа микросхем (обычно 8 или 16) монтируется на одну крошечную печатную плату и продается как один блок. Он называется SIMM(Single Inline Memory Module – модуль памяти с односторонним расположением выводов) или DIMM(Dual Inline Memory Module – модуль памяти с двухсторонним расположением выводов).На платах SIMM устанавливается один краевой разъем с 72 контактами; при этом скорость передачи данных за один тактовый цикл составляет 32 бит. Модули DIMM, как правило, снабжаются двумя краевыми разъемами (по одному на каждой стороне платы) с 84 контактами; таким образом, общее количество контактов достигает 168, а скорость передачи данных возрастает до 64 бит за цикл. Схема модуля SIMM изображена на рисунке.
Обычно модули SIMM и DIMM содержат 8 микросхем по 256 Мбит (32 Мбайт) каждая и более. Таким образом, весь модуль вмещает 256 Мбайт информации. Во многих компьютерах предусматривается возможность установки четырех модулей; следовательно, при использовании модулей по 256 Мбайт общий объем памяти достигает 1 Гбайт.
В портативных компьютерах обычно используется модуль DIMM меньшего размера, который называется SO-DIMM(Small Outline DIMM). Модули SIMM и DIMM могут содержать бит четности или код исправления ошибок, однако, поскольку вероятность возникновения ошибок в модуле составляет примерно одну ошибку за 10 лет, в большинстве обычных компьютеров схемы обнаружения и исправления ошибок не применяются.
Иерархическая структура памяти.Иерархическая структура памяти является традиционным решением проблемы хранения больших объемов данных. На самом верху иерархии находятся регистры процессора. Доступ к регистрам осуществляется быстрее всего. Дальше идет кэш-память, объем которой сейчас составляет от 32 Кбайт до нескольких мегабайтов. Затем следует основная память, которая в настоящее время может вмещать от 16 Мбайт до десятков гигабайтов. Затем идут магнитные диски и, наконец, накопители на магнитной ленте и оптические диски, которые используются для хранения архивов.
Рисунок – Пятиуровневая организация памяти
По мере продвижения сверху вниз по иерархии меняются три параметра. Во-первых, увеличивается время доступа. Доступ к регистрам занимает несколько наносекунд, доступ к кэш-памяти – немного больше, доступ к основной памяти – несколько десятков наносекунд. Дальше идет большой разрыв: доступ к дискам занимает по крайней мере 10 мкс, а время доступа к магнитным лентам и оптическим дискам вообще может измеряться в секундах (поскольку эти накопители информации еще нужно поместить в соответствующее устройство).
Во-вторых, растет объем памяти. Регистры могут содержать в лучшем случае 128 байт, кэш-память – несколько мегабайтов, основная память – десятки тысяч мегабайтов, магнитные диски – от нескольких единиц до нескольких десятков гигабайтов. Магнитные ленты и оптические диски хранятся автономно от компьютера, поэтому их совокупный объем ограничивается только финансовыми возможностями владельца.
В третьих, увеличивается количество битов, которое вы получаете за 1 доллар. Стоимость объема основной памяти составляет несколько долларов за мегабайт,магнитных дисков – несколько центов за мегабайт, а магнитной ленты – несколько долларов за гигабайт или еще дешевле.