- •Технические средства автоматизированных систем обработки информации и управления
- •230100 Информатика и вычислительная техника
- •230200 Информационные системы
- •Введение
- •1. Классификация и архитектура современных компьютеров
- •1.1. Краткая история развития вычислительной техники
- •1.1.1. Первые счетно-аналитические устройства
- •1.1.2. Поколения эвм
- •1.2. Классификация компьютеров
- •1.3. Архитектура вычислительных систем
- •1.3.1. Архитектура фон Неймана
- •1.3.2. Архитектура системы команд и классификация процессоров (cisc и risc)
- •1.4. Общие требования, предъявляемые к современным компьютерам
- •1.5. Базовая конфигурация персонального компьютера
- •Контрольные вопросы и задания
- •2. Основные функциональные узлы и элементы системного блока персонального компьютера
- •2.1. Корпус персонального компьютера
- •2.2. Материнская плата
- •Соответствие сокетов и процессоров
- •2.3. Центральный процессор
- •2.3.1. Параметры центрального процессора
- •Характеристики наиболее распространенных процессоров фирмы Intel для настольных компьютеров
- •2.3.2. Средства термозащиты процессоров
- •2.4. Память пк
- •2.4.1. Принципы организации основной памяти в современных компьютерах
- •2.4.2. Оперативное запоминающее устройство
- •2.4.3. Постоянное запоминающее устройство
- •2.5. Видеокарта пк
- •Наиболее популярные типы графических процессоров
- •2.6. Устройства для записи и хранения информации
- •2.6.1. Накопители на жестких магнитных дисках
- •2.6.2. Raid-массивы
- •2.6.3. Оптические диски и накопители
- •2.20. Сравнение стандартов
- •2.6.4. Устройства для считывания карт флэш-памяти
- •2.7. Tv/fm-тюнеры
- •Контрольные вопросы и задания
- •3. Периферийные устройства
- •3.1 Компьютерные мониторы
- •3.1.1. Мониторы с электронно-лучевой трубкой
- •3.1.2. Жидкокристаллические (жк) мониторы
- •3.1.3. Основные характеристики мониторов
- •3.2. Клавиатура, мышь, планшет, игровые устройства
- •3.2.1. Современная многофункциональная клавиатура
- •3.2.2. Манипулятор «Мышь»
- •3.2.3. Беспроводные клавиатура и мышь
- •3.2.4. Графический планшет
- •3.2.5. Игровые устройства
- •3.3. Принтеры и плоттеры
- •3.3.1. Лазерные принтеры
- •3.3.2. Светодиодные прнтеры
- •3.3.3. Струйные принтеры
- •3.3.4. Плоттеры
- •3.4. Сканеры
- •3.5. Многофункциональные устройства
- •3.6. Мультимедийное оборудование
- •3.6.2. Акустические системы
- •Контрольные вопросы и задания
- •4. Устройства, имеющие интерфейс для связи с персональным компьютером
- •4.1. Внешние накопители
- •4.1.1. Накопители на жестких магнитных дисках
- •4.1.2. Накопители для оптических дисков
- •4.1.3. Накопители на флэш-памяти
- •4.2. Цифровые фотоаппараты
- •4.3. Цифровые видеокамеры
- •4.3.1. Форматы записи видео в цифровых видеокамерах
- •4.3.2. Основные характеристики цифровых видеокамер
- •4.4.1. Формат mp3
- •4.4.2. Флэш – плееры
- •4.4.3. Плееры на базе жесктх дисков
- •4.5. Бытовые медицинские приборы
- •Контрольные вопросы и задания
- •5. Источники бесперебойного питания
- •Контрольные вопросы и задания
- •6. Особенности портативных и карманных персональных компьютеров
- •6.1. Современные портативные компьютеры
- •6.1.1. Классификация современных ноутбуков
- •6.1.2. Параметры ноутбуков
- •6.2. Карманные персональные компьютеры
- •6.3. Технология беспроводного доступа Bluetooth
- •6.3.2. "Частотный конфликт"
- •6.3.3. Bluetooth-устройства
- •6.3.4. Перспективы развития устройств Bluetooth
- •6.4. Коммуникаторы
- •Контрольные вопросы и задания
- •7. Особенности архитектуры компьютеров с risc-процессорами
- •7.1. Mips-архитектура
- •7.2. Регистровые окна sparc
- •7.3. Условные инструкции arm
- •7.4. Архитектура PowerPc
- •8.1.2. Рабочие станции
- •8.1.3. Сетевые адаптеры
- •8.1.4. Файловые серверы
- •8.1.5. Сетевые операционные системы
- •8.1.6. Сетевое программное обеспечение
- •8.1.7. Защита данных
- •8.1.8. Использование паролей и ограничение доступа
- •8.2.1. Кабели связи, линии связи, каналы связи
- •8.1.9. Типовой состав оборудования локальной сети
- •8.2. Физическая среда передачи данных
- •8.2.2. Типы кабелей и структурированные кабельные системы
- •8.2.3. Кабельные системы
- •8.2.4. Типы кабелей
- •8.2.5. Кабельные системы Ethernet
- •8.2.6. Беспроводные технологии
- •8.3. Сетевое оборудование
- •8.3.1. Сетевые адаптеры или nic (Network Interface Card)
- •8.3.2. Повторители и концентраторы
- •8.3.3. Мосты и коммутаторы
- •8.3.4. Маршрутизатор
- •8.3.5. Шлюзы
- •Контрольные вопросы и задания
- •9. Компьютеры будущего
- •9.1. Квантовые компьютеры
- •9.2. Оптические компьютеры
- •9.3. Биокомпьютеры
- •9.4. Молекулярные компьютеры
- •Контрольные вопросы и задания
- •Заключение
- •Список использованных источников
- •Технические средства автоматизированных систем обработки информации и управления
7.2. Регистровые окна sparc
При построении RISC-процессоров принимается во внимание медлительность оперативной памяти. Обращения к ней (даже с учетом различных кэшей) - "дорогостоящи" и требуют дополнительных вычислений, а потому, насколько это возможно, их следует избегать. Но Load/Store-архитектура и большое число регистров - не единственное, что можно сделать.
В любом программном коде можно встретить немало вызовов функций - фактически требований к процессору перейти в заданное место программы, продолжить выполнение программы до специальной инструкции возврата, после чего - вернуться к тому месту, где произошел вызов, почти полностью восстановив свое состояние до вызова функции. Чтобы это можно было сделать, при вызове функции процессор должен "запомнить" свое текущее состояние - в частности, содержимое некоторых регистров общего назначения и значительной части специальных регистров. Традиционное решение - "запихнуть" все необходимые данные в специальную конструкцию – стек. Стек можно условно представить как запаянную с одного конца трубку, в которую по одному кладутся и по одному же извлекаются шарики (данные). Первый положенный в трубку шарик извлекается последним, так что если мы, скажем, по очереди положим (push) в стек числа 1, 2, 3, то извлекая (pop) данные, мы поочередно достанем 3, 2, 1., которую процессор поддерживает на аппаратном уровне и которая в большинстве процессоров реализована в виде пары служебных регистров и выделенного участка оперативной памяти, куда все складываемые в стек данные и записываются. Поэтому любой вызов функции в традиционной схеме неявным образом приводит к записи в оперативную память десятков, а то и сотен байт информации. Есть даже целый ряд модельных задачек на эту тему - как написать компилятор, минимизирующий количество сохраняемой информации; причем кое-какие из этих наработок поддерживаются популярными компиляторами (например, соглашение __fastcall в некоторых компиляторах C/C++). Но оказывается, что всего этого можно избежать.
Рис. 7.2. Процессор Ultra SPARC II и компьютер SUN
В типичной SPARC(Scalable Processor ARChitecture)-архитектуре используется регистровый файл из 128 регистров; причем пользователю из них одномоментно доступны только расположенные подряд 24 регистра, образующие в этом файле окно, плюс еще восемь стоящих особняком глобальных регистров(рис 7.2). Глобальные регистры используются для глобальных переменных. В структурных языках программирования типа C принято разделять локальные переменные, которые определены и используются только одной конкретной функцией и существуют только то время, пока эта функция работает; и глобальные переменные, которые существуют все время, пока выполняется программа, и доступны всем функциям программы; регистровое окно - для локальных. Когда пользователю нужно вызвать какую-нибудь функцию, то он записывает необходимые для ее работы исходные данные в конец окна, а процессор при вызове функции попросту смещает окно по регистровому файлу таким образом, чтобы записанные данные оказались в начале нового, пока пустого окна. Требовавшие сохранения временные данные вызывавшего функцию кода оказываются за пределами окна, так что испортить их нечаянными действиями невозможно. А когда функция заканчивает работу, то полученные результаты записываются в те же самые регистры в начале окна, после чего процессор смещает его обратно. И никаких расходов на сохранение-восстановление стека не требуется.
Расположение окон в SPARC-архитектурах можно программировать, добиваясь максимально эффективного использования схемы (либо много окон, но маленьких, либо мало - но больших; в зависимости от того, что за функции встречаются в программе) - этот факт даже отражен в названии процессора. Подобно многим своим RISC-сестрам, разработанная в середине 80-х годов и пережившая расцвет в середине 90-х, SPARC-архитектура не выдержала "гонки мегагерц" и сегодня фактически умерла. Но предложенный ею подход используется в настоящее время, например, в архитектуре IA-64 (Itanium).
