Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:
В дополнительное ПЗУ часто записывают системные и графические процедуры, а также другие программы, которые должны быть доступны в любой момент.
Для того чтобы считать из памяти или сохранить в памяти ту или иную информацию, ЦП «адресует» то слово (памяти), какое пожелает. Большинство компьютеров адресует память побайтно, начиная с нулевого байта и последовательно перебирая байты вплоть до последнего в памяти. Поскольку машинное слово большинства компьютеров составляет несколько байт, обычно за один раз вы заносите в память или извлекаете из нее группу байт; обычно необременительно иметь шину данных с разрядностью в несколько байт. Например, микроЭВМ, которые построены на МП 80386 или 68020, имеют 32-разрядную шину данных (что равно 4 байт), так что 32-разрядное слово может быть записано
В компьютере с большим количеством сегментов памяти для указания произвольного адреса памяти необходимо 3–4 байт. Поскольку большинство адресов памяти в реальной программе обычно близко, все компьютеры поддерживают упрощенные модели адресации: «относительная» адресация определяет адрес по удалению его от текущей команды в памяти; «косвенная» адресация использует содержимое регистра ЦП для указания ячейки в памяти; «страничная» адресация использует укороченные адреса для указания на заданную ячейку памяти в пределах малого диапазона (страницы); «прямая» или «абсолютная» адресация использует несколько следующих за командой байт для указания адреса. Современные ЦП венчают этот краткий список «индексной», «автоинкрементной» и другими полезными способами адресации, которых мы коснемся в следующей главе.
Во время выполнения программы в памяти находятся как собственно программа, так и данные. Центральный процессор извлекает команды из памяти, выясняет, что они означают и поступает соответственно, при этом часто требуется сохранить данные где-нибудь в памяти. Обычно неспециализированные универсальные компьютеры хранят программы и данные в одной и той же памяти, причем компьютер на самом деле не отличает одних от других. Если программа пойдет не туда и начнет «исполнять» данные, могут начаться забавные вещи!
Поскольку компьютерные программы большую часть своей жизни проводят в циклах, состоящих из сравнительно коротких последовательностей команд, вы можете увеличить производительность машины, используя малую по объему, но быструю кэш– память, в которую вы просто заносите копии ближайших используемых ячеек памяти. Центральный процессор с кэш-памятью сначала обращается именно к ней, перед тем, как осуществить выборку из более медленной основной памяти, когда циклы «крутятся» по одним и тем же адресам; часто можно достичь рекордной эффективности использования кэш-памяти до 95 % и выше, разительно увеличивая быстродействие.
Массовая память. Компьютеры, предназначенные для разработки программ или вычислений, в противоположность специализированным управляющим процессорам, обычно имеют одно или более запоминающее устройство достаточной емкости, называемое устройством массовой памяти. Жесткие диски (именуемые также «винчестерскими») и гибкие диски (флоппи-диски или дискеты) — вот типичные представители устройств массовой памяти, емкость которых изменяется от нескольких сотен килобайт до нескольких мегабайт для гибких дисков, и от нескольких десятков до нескольких сотен мегабайт для жестких дисков. Наиболее полно экипированные компьютеры имеют в своем составе дополнительно одно или два устройства ввода-вывода на магнитную ленту, конструкция которых может быть различна-от простого кассетного «стриммера» до магнитофона, рассчитанного на большие катушки 9-дорожечной полудюймовой стандартной ленты, те самые, которые всегда вращаются на заднем плане в научно-фантастических кинофильмах. Более современная технология, используя 8-мм видеокассеты, те же самые, что обитают в легких переносных видеокамерах, позволяет записать на одну такую кассету 1 Гбайт. Последним достижением в разработке массовой памяти являются компакт-диски, предназначенные только для чтения и использующие ту же технологию производства оптических дисков, что и при изготовлении аудио компакт-дисков; их емкость составляет 600 Мбайт на сторону 5-дюймового пластикового диска, обладающего к тому же гораздо меньшим временем доступа, чем любая магнитная лента.
В отличии от аудио компакт-дисков существуют такие устройства массовой памяти на компакт-дисках, которые позволяют как считывать, так и записывать информацию путем образования на пустом ровном компакт-диске ямок за счет лазерного нагрева; такие устройства называют WORM от английской аббревиатуры «записать однажды - читать многократно». Более того, сейчас доступны также устройства внешней памяти на магнитооптических дисках, поддерживающие операции чтения-записи и позволяющие полностью обновлять содержимое таких дисков.
По сравнению с ОЗУ произвольного доступа устройства массовой памяти, вообще говоря, обладают меньшим быстродействием, причем самыми медленными являются устройства на магнитных лентах (их время доступа достигает многих секунд), а самыми быстрыми (и дорогими) — жесткие диски (среднее время доступа порядка десятков миллисекунд). Скорость обмена данными для всех устройств массовой памяти высока и составляет от 10 Кбайт до 100 Кбайт в секунду и более, без учета задержки доступа к устройству. Как правило, вы храните программы, файлы данных, в том числе файлы графической информации, на некотором устройстве массовой памяти и загружаете их в ОЗУ только на время вычислений. С одним диском одновременно могут работать несколько пользователей; средних размеров оптический диск может хранить несколько копий Британской энциклопедии.
Если ваш компьютер имеет ОЗУ достаточно большого объема, элегантный способ поднять быстродействие компьютера, в том случае, если он часто обращается к диску, заключается в том, чтобы организовать псевдодиск путем загрузки всех необходимых дисковых файлов в ОЗУ в начале работы. Таким образом, вы можете загрузить в ОЗУ текстовый редактор, компилятор, редактор связей, загрузчик, после чего можно обращаться к такому диску для чтения или записи без потерь времени на ожидание. Тем не менее будьте бдительны: если компьютер отключится, ничто из результатов вашей работы не будет сохранено на внешнем носителе и вы потеряете всю наработку.
Алфавитно-цифровой и графический ввод-вывод. Замечательно иметь мощный компьютер, способный выполнять миллионы интеллектуальных вычислений в секунду, но если он все результаты держит в себе, вам от этого мало проку. Такие внешние устройства, как клавиатура с экраном, составляющие вместе терминал, «мышь», печатающее устройство и другие обеспечивают общение человека с машиной и существенны для любой «дружественной» по отношению к пользователю вычислительной системы. Эти устройства ориентированы в основном на программирование, редактирование текстов, работу с электронными таблицами и на графику; вы используете их, когда пишете, отслеживаете и распечатываете программу, вводите и печатаете документы, манипулируете числами или изображениями, играете в компьютерные игры. Такие внешние устройства вкупе с соответствующей интерфейсной частью легко найти у многих поставщиков, включая фирмы-изготовители собственно компьютеров.
Ввод-вывод в реальном времени. В лабораторных исследованиях, управлении технологическими процессами, при сборе данных или для таких экзотических приложений, как синтез речи или музыки, вам необходимы аналого-цифровые и цифро-аналоговые устройства, которые могут общаться с компьютером в реальном масштабе времени, т. е. в то же самое время, когда продолжается процесс, контролируемый этими устройствами. Возможности здесь практически безграничны; если взять хотя бы набор мультиплексируемых АЦП общего назначения, немного быстрых ЦАПов и несколько цифровых «портов» (последовательных или параллельных) для обмена данными, это уже обеспечит массу интересных приложений. Для наиболее популярных стандартов внутренней магистрали компьютеров подобная периферия общего назначения коммерчески доступна. Если же вы хотите от этих устройств чего-нибудь более причудливого, например, улучшенных характеристик (повышенного быстродействия, увеличенного числа каналов) или специализированных функций (генерации звуков, частотного синтеза, генерации временных интервалов и т. п.), вам придется сделать такие устройства самостоятельно. Вот здесь-то сведения об организации магистрали компьютера и технике программирования существенны, хотя подобные сведения полезны всегда.