Отчет по преддипломной практике

Автор работы: Пользователь скрыл имя, 18 Марта 2010 в 00:20, Не определен

Описание работы

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

Файлы: 1 файл

Преддипломная та.doc

— 735.50 Кб (Скачать файл)

     Второй  компонент конвейера — логика исполнения с изменением последовательности — получает данные из кэша трасс емкостью 12 000 микрооперации. При поступлении из блока предварительной обработки каждой последующей микрооперации (а за цикл их поступает три) блок распределения и подмены регистрирует се в таблице, состоящей из 128 записей и называемой буфером переупорядовачивания команд (ReOrder Buffer, ROB). В этом буфере хранятся данные о состоянии микрооперации, вплоть до пересортировки ее результатов. Затем блок распределения и подмены проводит проверку на предмет доступности ресурсов, необходимых для выполнения микрооперации. Если ресурсы свободны, микрооперация устанавливается в одну из очередей на выполнение. Для микроопераций, исполняемых в памяти и вне памяти, предусмотрены отдельные очереди. Если выполнение микрооперации в данный момент невозможно, она откладывается, однако обработка последующих микроопераций продолжается; таким образом, микрооперации часто выполняются вне их исходной последовательности. Этот принцип позволяет поддерживать загрузку всех функциональных блоков на максимально высоком уровне. В каждый отдельно взятый момент могут одновременно обрабатываться до 126 команд, причем 48 из них могут загружаться из памяти, а 24 - сохраняться в памяти.

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

     нет. Такие конфликты, как мы уже выяснили, называются WAR- и WAW-взаи-мозависимостями. Подмена целевого регистра позволяет записать результаты выполнения микрооперации в один из 120 временных (регистров, а значит, выполнить эту микрооперацию немедленно. Если же все временные регистры недоступны или микрооперация попадает в ситуацию RAW-взаимозависимости (обойти которую нельзя), планировщик указывает характер возникшей проблемы в виде записи в буфере ROB. Впоследствии, после освобождения всех необходимых ресурсов, микрооперация устанавливается в одну из очередей на выполнение.

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

     1.   Планировщик 1 - АЛУ 1 и блок  смещения операций с плавающей  точкой.

     2.   Планировщик 2 - АЛУ 2 и блок  исполнения операций с плавающей  точкой.

     3.   Планировщик 3 - команды загрузки.

     4.   Планировщик 4 - команды сохранения.

     Поскольку планировщики и АЛУ работают на скорости, вдвое превышающей номинальную тактовую частоту, первые два планировщика могут передавать но две микрооперации за цикл. Учитывая то, что два целочисленных АЛУ тоже работают на удвоенной скорости, процессор Pentium 4 с тактовой частотой 3 ГГц способен выполнять 12 млрд целочисленных операций в секунду. В силу столь высокой скорости блок контроля исполнения с изменением последовательности испытывает некоторые трудности с загрузкой АЛУ. Команды загрузки и сохранения проходят через один блок исполнения, работающий на удвоенной частоте, который в течение одного цикла может вызывать по одной команде обоих типов. Таким образом, в лучшем случае (при отсутствии операций с плавающей точкой) за цикл может' быть вызвано 6 целочисленных микроопераций.

     Два целочисленных АЛУ неодинаковы. АЛУ 1 выполняет любые арифметические и логические операции и переходы. АЛУ 2 способно выполнять только команды  сложения, вычитания, сдвига и циклического сдвига. Не идентичны и два блока  исполнения операций с плавающей точкой. Первый из них выполняет только сдвиги и SSE-команды. Второй поддерживает арифметические операции с плавающей точкой, а также ММХ- и SSE-команды.

     АЛУ и блоки исполнения операций с  плавающей точкой получают данные от двух регистровых файлов емкостью по 128 записей. Один из этих файлов отводится для целых чисел, другой — для чисел с плавающей точкой. В них содержатся все опранды, необходимые для исполнения команд; кроме того, они играют роль хранилища результатов. В силу подмены регистров восемь из них содержат регистры, доступные на уровне архитектуры команд (ЕАХ. ЕВХ. ЕСХ. EDX и т. д.), однако расположение «реальных» значений в каждом конкретном случае зависит от изменений в отображении, происходящих в ходе выполнения.

     Кэш данных первого уровня является одним из компонентов высокоскоростной (2х) схемы. При емкости 8 Кбайт в нем хранятся целые числа, числа с плавающей точкой и другие типы данных. В отличие от кэша трасс, эти данные никоим образом не декодируются. Функция кэша данных сводится к хранению копий байтов, находящихся в памяти. Что касается его характеристик, то кэш данных первого уровня представляет собой 4-входовую ассоциативную кэш-память с емкостью строки 64 байт. Он поддерживает сквозную запись; иными словами, при изменении строки кэша она незамедлительно копируется обратно в кэш второго уровня. В течение никла кэш данных первого уровня обрабатывает по одной операции чтения и записи. Пели затребованное слово не удается обнаружить в кэше первого уровня, отправляется запрос в кэш второго уровня; по* следний в такой ситуации может ответить либо сразу, либо после выборки соответствующей строки из памяти. В любой момент и состоянии исполнения могут находиться до четырех запросов, направленных из кэша первого уровня в кэшвторого уровня.

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

      Команды процессора Pentium 4

      Команды Pentium 4 представляют собой причудливую  смесь 32-разрядных команд, а также  команд, появившихся еще в процессоре 8088. В таблице1 приведены наиболее распространенные целочисленные команды, при этом используются следующие обозначения:

      SRC - источник данных;

      DST - приемник данных:

      #-количество битов, из которое происходит сдвиг;

      LV - количество локальных переменных.

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

      Многие  команды Pentium 4 обращаются к одному или  к двум операндам, которые находятся в регистрах или памяти. Например, бинарная команда ADD складывает два операнда, а унарная команда INC увеличивает значение одного операнда на 1. Некоторые команды имеют несколько похожих вариантов. Например, команды сдвига могут сдвигать слово либо вправо, либо влево, с учетом знакового бита или без учета. Большинство команд имеют несколько различных колировок в зависимости от природы операндов.

      Таблица 1.

      Команда       Описание
      Команды перемещения        
      MOV DST. SRC       Перемещение из SRC в DST
      PUSH SRC       Помещение из SRC в стек
      POP DST       Выталкивание  слова из стека и помещение  его в DST
      XCHG DS1.DS2       Смена мест DS1 и DS2
      LEA DST. SRC       Загрузка  действительного адреса SRC в DST
      CMOV DST. SRC       Условное  перемещение
      Арифметические команды        
      ADD DST, SRC       Сложение SRC и DST
      SUB DST. SRC       Вычитание SRC из DST
      MUL SRC       Умножение ЕАХ на SRC (без учета знака)
      IMUL SRC       Умножение ЕАХ на SRC (с учетом знака)
      DJV SRC       Деление EDX:EAX на SRC (без учета знака)
      IDV SRC       Деление EDX:EAX на SRC (с учетом знака)
      ADC DST. SRC       Сложение SRC с DST и прибавление бита переноса
      S88 DST. SRC       Вычитание DST и перенос из SRC
      INC DST       Инкремент (прибавление 1) DST
      DEC DST       Декремент (вычитание 1) DST
      NEG DST       Отрицание DST (вычитание DST из 0)
      Двоично-десятичные команды
      DAA       Десятичная  коррекция
      AAA       Коррекция ASCII-кода для сложения
      AAS       Коррекция ASCII-кода для вычитания
      AAM       Коррекция ASCII-кода для умножения
      AAD       Коррекция ASCII-кода для деления
      Логические команды        
      AND DST, SRC       Логическая  операция И над SRC и DST
      OR DST. SRC       Логическая  операция ИЛИ над SRC и DST
      XOR DST. SRC       Логическая  операция ИСКЛЮЧАЮЩЕЕ ИЛИ над SRC и DST
      NOT DST       Замещение DST дополнением до 1
      Команды обычного и  цикличесхого сдвига
      SAL/SAR DST. #       Сдвиг DST влево/вправо на * бит
      SHL/SHR DST. #       Логический  сдвиг OST влево/вправо на я бит
      ROL/ROR OST, *       Циклический сдвиг DST влево/вправо на # бит
      ROL/ROR OST. ш       Циклический сдвиг OST по переносу на * бит
      Команды тестирования и сравнения
      TSTSRC1.SRC2       Операнды  логической операции И. установка флагов       
      CMP SRC1.SRC2       Установка флагов на основе разности SRC1 - SRC2 
      
      Команды передачи управления
      JMP ADDR       Переход к адресу
      Jxx ADDR       Условные  перекоды на основе флагов
      CALL ADDR       Вызов процедуры по адресу
      RET       Выход из процедуры
      IRET       Выход из прерывания
      LOOPkx       продолжение цикла до выполнения определенного условия
      INT ADDR       Программное прерывание
      INTO       Прерывание, если установлен бит переполнения
      Команды обработки  стокрок
      LOOS       Загрузка  строки
      STOS       Сохранение  строки
      MOVS       Перемещение строки
      CMPS       Сравнение двух строк
      SCAS       Сканирование строки
      Команды для работы с /содами условий
      STC       Установка бита переноса в регистре EFLAGS
      CLC       Сброс бита переноса в регистре EFLAGS
      CMC       Дополнение  бита переноса в регистре EFLAGS
      STD       Установка бита направления в регистре EFLAGS
      CLO       Сброс бита направления в регистре EFLAGS
      STN       Установка бита прерывания в регистре EFLAGS
      CLI       Сброс бита прерывания в регистре EFLAGS
      PUSHFD       Помещение значения из регистра EFLAGS в стек
      POPFD       Выталкивание  значения из стека в регистр EFLAGS
      LAHF       Загрузка  АН из регистра EFLAGS
      SAHF       Сохранение  АН в регистре EFLAGS
      Прочие команды        
      SWAP DST       Изменение порядка следования байтов в DST
      CWQ       Расширение  ЕАХ до EDX:EAX для деления
      SWDE       Расширение 16-разрядного числа в АХ до ЕАХ
      ENTER SIZE. LV       Создание  стекового фрейма с байтами размера
      LEAVE       Удаление  стекового фрейма, созданного командой ENTER
      NOP       Пустая  операция
      HLT       Останов
      IN AL, PORT       Перенос байта из порта в АЛУ
      OUT PORT, AL       Перенос байта из АЛУ в порт
      WAIT       Ожидание  прерывания

      При выполнении команд источники данных (SRC) не изменяются, а приемники (DST) обычно изменяются. Существуют определенные правила, определяющие, что может быть источником, а что приемником, но здесь мы не будем о них говорить. Многие команды имеют три варианта: для 8-, 16- и 32-разрядных операндов соответственно. Они различаются по коду операции и/или по одному биту в команде. В таблице1. приведены в основном 32-разрядные команды.

      Для удобства команды разделены на несколько групп. Первая группа содержит команды, которые перемещают данные между компонентами машины: регистрами, памятью и стеком. Вторая группа содержит арифметические команды для операций со знаком и без знака. При умножении и делении 64-разрядное произведение или делимое хранится в двух регистрах: ЕАХ (младшие биты) и EDX (старшие биты).

      Третья  группа включает двоично-десятичную арифметику. Здесь каждый байт рассматривается  как два 4-разрядных полубайта. Каждый полубайт содержит 1 десятичный разряд (от 0 до 9). Комбинации битов от 1010 до 1111 не используются. Таким образом, 16-разрядное целое число может содержать десятичное число от 0 до 9999. Хотя такая форма хранения неэффективна, она устраняет необходимость преобразования десятичных входных данных в двоичные, а затем обратно в десятичные для вывода. Эти команды служат для выполнения арифметических действий нал двоично-десятичными числами. Они широко используются в программах на языке COBOL

      Логические  команды и команды сдвига манипулируют битами в слове или байте. Существует несколько комбинаций.

      Следующие две группы связаны с проверкой, сравнением и осуществлением перехода в зависимости от полученного результата. Результаты проверки и сравнения хранятся в различных битах регистра EFLAGS. Символами Jхх обозначена группа команд, выполняющих условный переход в зависимости от результатов предыдущего сравнения (то есть в зависимости от битов в регистре EFLAGS).

      В Pentium 4 есть несколько команд для  загрузки, сохранения, перемещения, сравнения  и сканирования символьных строк  или слов. Перед этими командами  может стоять специальный префиксный байт REP (repetition — повторение), который заставляет команду повторяться до тех пор. пока не будет выполнено определенное условие (например, пока регистр ЕСХ. значение которого уменьшается на 1 после каждого повторения, не станет равным 0). Таким образом. различные действия (перемещение, сравнение и г.д.) могут производиться над произвольными блоками данных. Следующая группа команд управляет кодами условий.

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

      Команды Pentium 4 имеют ряд префиксов. Один из них (REP) мы уже упомянули. Префикс - это специальный байт, который может ставиться практически перед любой командой (подобно WIDE в IJVM). Как уже отмечалось, префикс REP заставляет команду, идущую за ним, повторяться до тех пор, пока регистр ЕСХ не примет значение 0. Префиксы REP2 и REPHZ заставляют команду выполняться

      снова и снова, пока код выполнения условия Z не примет значение 1 или 0 соответственно. Префикс LOCK резервирует шину для всей команды, чтобы можно было осуществлять межпроцессорную синхронизацию. Другие префиксы используются для того, чтобы команда работала и 16 или 32 разрядном формате При этом меняется не только длима операндов, но и полностью переопределяются режимы адресации. Наконец, в Pentium 4 реализована сложная схема сегментации, в которой задействованы код, данные, стек и дополнительные сегменты (наследие 8088). Префиксы позволяют регламентировать применение тех или иных сегментов при обращении к памяти.  
 
 
 
 

     4. Архитектура вычислительных систем (ВС)

     4.1 Способы организации и типы ВС на предприятии прохождения практики

     На  рабочих местах установлены компьютеры с одним МП или с одним МП и 2 ядрами

     То есть SISD (англ. Single Instruction, Single Data) — архитектура компьютера, в которой один процессор выполняет один поток команд, оперируя одним потоком данных. Относится к фон-Неймановской архитектуре.

     SISD компьютеры это обычные, "традиционные" последовательные компьютеры, в которых в каждый момент времени выполняется лишь одна операция над одним элементом данных (числовым или каким-либо другим значением). Большинство современных персональных ЭВМ, например, попадает именно в эту категорию. Иногда сюда относят и некоторые типы векторных компьютеров, это зависит от того, что понимать под потоком данных, но обсуждать эти детали здесь мы не будем. А вот двух ядерные процессоры уже относятся к MIMD

     На  серверах установлены двух или четырёх  процессорные системы они относятся к MIMD

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

Информация о работе Отчет по преддипломной практике