![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 16.03.2009
Сообщений: 125
|
![]()
Цель: ознакомить студентов с основами конвейерной обработки команд микропроцессора и выполнить сравнение эффективности функционирования центрального процессора в конвейерном и последовательном режимах.
Вариант 10. Типы команд: вычитание, сдвиг справа. Размер блока команд: 100, 200, 300. И еще сказал препод что все нужно нужно написать в отдедьных функциях на С++. Ну например вычитывание в конвеерном режиме так это нужно делать с помощью массива? И что значит размер блока команд?? Типа количество операций вычитывания? Извините что нагрузила вопросами, просто в нас была токо одна пара а обьясняли плохо ![]()
Если помогла нажмите на весы
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
![]()
Вообще-то, насколько мне известно, все(или почти все) современные микропроцессоры работают в конвейерном режиме, хочешь ты того или нет. Просто они так устроены...
|
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 16.09.2009 в 09:04. |
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
![]()
Сейчас точно все процессоры работают по принципу конвейера. Это началось, если я не ошибаюсь, с процессора i486:
Конвейер - устройство, реализующее такой метод обработки команд внутри микропроцессора, при котором исполнение команд разбивается на несколько этапов: 1. Выборка команд из кэш памяти или ОЗУ 2. Декодирование команды 3. Генерация адреса, при которой определяются адреса операндов в памяти 4. Выполнение операции 5. Запись результата. Теперь по человечески: Команда, после ее выборки из памяти попадает в блок декодирования команды, а блок выборки свободен для следующей команды (что он собственно и делает). И так для каждого пункта. Получается, что в процессоре находятся не одна, а сразу пять команд. Если учесть что: 1. процессору быстрее выбирать команды из своего кэша а не из оперативки 2. Все эти пять пунктов не зависят друг от друга (выполняются одновременно) то налицо увеличение производительности. Вот как-то так))
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Смотри вот первая операция устанавливает флаг (а может например и не установить - скажем перенос). А вторая операция условный переход в случае если установлен перенос. В таком случае весь твой конвейр идет лесом и ждет пока не выполнятся обе команды поочереди. Какую операцию загружать следующей? Та что следом за условным переходом или осуществлять переход? И случай совсем не экзотический (и я бы даже сказал классический).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
![]() Цитата:
_________________________ Вот нашел. Называется: "Предсказание правильного адреса перехода"
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Я знаю его, но оно тоже не стопроцентная панацея. Внимательно прочти мой предыдущий пост и поймешь почему. В таком случае все зависит от содержимого регистров (скажем если сложение то двух, а если инкремент то одного) и лесом товарищи, лесом.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
![]()
Ну лесом так лесом.)))
Но мы отвлекаемся. Давайте разберемся, что толком требует от нас условие? Насколько я понимаю мы тут можем построить только модель, и никакой реальной производительности мы не получим, а наоборот замедлим работу почти в 5 раз.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Последний раз редактировалось SuperVisor; 16.09.2009 в 16:09. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
последовательный поиск по базе | bosston | БД в Delphi | 21 | 26.06.2009 14:43 |
Edit. Последовательный переход... | MoonLit | Общие вопросы Delphi | 22 | 13.02.2008 20:57 |
Последовательный порт RS-232 | LepihinMS | Общие вопросы Delphi | 4 | 23.06.2007 00:53 |
Последовательный порт? | Lexx | Общие вопросы Delphi | 4 | 10.05.2007 10:50 |
Последовательный поиск в БД | Nowichok | БД в Delphi | 7 | 10.02.2007 21:55 |