- •Устройство эвм
- •Процессорор
- •Микропрограммирование
- •Способы ускорения традиционных эвм
- •Нетрадиционные архитектуры эвм
- •//Архитектура бесперспективна, ибо запрограммировать задачу для такой машины по-видимому невозможно.
- •Матричные
- •Векторные
- •Конвейерные
- •Торовые (Grid)
- •История эвм
- •Традиционные архитектуры эвм на примере ibm/360
- •Risc, cisc – компьютеры
- •Основные принципы построения hll-машины «Самсон»
- •Организация памяти
- •Команды чтения-записи
- •Арифметические команды
- •Логические команды
- •Передача управления
- •Организация циклов
- •Работа с вырезками
- •Реализация виртуальной памяти
- •Реализация вызовов процедур
- •Сoroutine - сопрограмма
- •Парал. Процессы
- •Понятие технологии программирования
- •Жизненный цикл программы
- •Реализация
- •Постановка задачи, оценка осуществимости
- •Планирование
- •Управление
- •Проектирование, этапы проектирования
- •Вопрос 20(7). Технология Real. Статическая модель.
- •Конвертер из sdl в объектный программный код
- •Качество разработки по
- •Стандарт качества iso
- •Стандарт cmm
- •29. Организация коллектива разработчиков
- •30.Тестирование программ
- •31.Психология программирования
- •32.Документирование
- •33. Case-технологии
- •34.Сопровождение
- •35.Системы реального времени
- •36.Понятия сбоев и отказов
- •37.Инструментальная и целевая эвм
- •38.Комплекс вычислительных средств
- •39.Параллельные процессы, работа с временными интервалами
- •40.Организация вычислительных процессов
- •1.Процессы.
- •2. Данные.
- •41.Технология rtst
- •42.Технология real. Статическая модель
- •43.Технология real. Динамическая модель
Команды чтения-записи
Ч$8, Ч$16, Ч@, Ч@8 - пометка о L/G в младш.бите, так как адр. четные
ЧБЛ8, ЧБГ8, ЧБЛ16, ЧБГ16 – читает байт, в старший байт ставит пометку – L или G
Аналог. с записью: П (+еще 4 вар), ПБЛ, ПБГ – снимаем одну позицию стека в память.
Команды кодируются так [КОП][С8 или С16]
Чтение: Ч адр (ЧС8, ЧС16, Ч@, Ч@8)
Запись: П адр (ПС8, ПС16, П@, П@8) (?)
У обычной процедуры локальных данных обычно около 10. Значит С8 – много, Тогда введем ЧУС4 – однобайтовая команда, Можно сделать и ЧУ С0,С1,С2 – читаем от регистра L со смещением.
Можно читать и константы:
ЧКОН – 16 бит
ЧКБ+, ЧКБ- (8 бит) - берем + и – константы
80% всех констант = 0 или 1, значит делаем Ч0, Ч1– на верхушку стека целых 0, 1.
Для вещественных чисел команды аналогичны (ЧП, ЧУП, ПП, ЧКОНП) и т.д.
Команды писать из стека в память:
П АД, П Ц4, ПУ С4, аналогично для плав и для адр.
Арифметические команды
+ - сложение двух целых со стека целых
-, *, /, ОСТ – аналогично (ВНИМАНИЕ: /-деление нацело)
вид: Р+, РОСТ…(т.е. один операнд в регистре, а др. в память, адр. Идет за командой)
П+, П-, П*, П/ - с плавающей точкой
Также СДВИГ, ЭЛЕМ, БИТ, НЕ, ИЛИ
Для некоммут. операций обратные аналоги типа /П обр
Команды +:= -:= *:= /:= ОСТ:= ИЛИ:=
НЕЧЕТ, ИНД, ДЕК, -1, АБС, ЗНАК, ОКР, ВЕЩ,, ЦЕЛ, -1П, АБСП, ЗНАКП(плав)
Логические команды
Логические команды: И(в смысле +), ИЛИ…
Пример: a/\b\/c/\d
Чa
Чb
И
Чc
Чd
И
ИЛИ
Можно использовать и операторы сравнения (сравнивается верхушка с подверхушкой стека и на стек кладется 0 или 1). Важен только последний бит, отрицание - НЕ1
Вычисл. Логич выраж по Маккарти (вычисл. только одна часть имеет смысл в if, но дольше работает при присваивании)
Передача управления
Команды передачи управления
РК – регистр команд - РКОМ
PC – указывает на следующую команду (program counter) - СЧАК
ПБ М16 – переход безусловный на М16 от РК, П1 М16, П0 М16
В0У М8, В1У М8, Н0У М8, Н1У М8 – укороченные в стеке целых
В М16 – вперёд
Н М16 – назад
ВБУ М8, НБУ М8 – укороченные команды
В 0 – переход на следующую команду (переход, считая от РС), ибо PC указывает всегда на следующую команду относительно исполняемой. Можно и ВУ 0.
Н 2 – переход на себя (команда перехода занимает 2 байта)
If усл then … else …
0 – false, 1- true
В0 – перейти по false
В1 – перейти по true
В=, В/=, В<, В<=, В>, В>= - объединение нескольких действий, верхушка стека сравнивается с 0,
“В0У” + “=” = В=У, ост. Ан-но
Если переход произошел, то надо разогнать водопровод (3-4 такта).
ВЫБОР Н8+1 М16 …М16 обрабат до 256 меток. Если “0” то идем по первой метке. Команда должна начинаться с четного адр. (если нечетный то ставим НОП)
Организация циклов
For I from A by B to C while D do E od
For I to n do E od - 90%, to n do, while D do.
Борьба с циклами – предсказан. переходов
Циклы
t o N do:
КСЧ – конец по счётчику, вычитает 1 из верхушки стека, если стало 0, выходим.
Е сли N было неположительным, то надо сразу уйти. Сделать так:
Ч N – записать N на стек НСЧ – начало по счётчику: N>0?
ЧР0 – размножить N на стеке
В<= - сравнить N с нулём
( НСЧ
нач:
Е
КСЧ [y]
Кон:
)
while D do E od
М: В0 [y] конец
E
НБ М
Конец:
for i:=1 to N do:
Ч 1 – записать 1 в стек
Ч N – записать N в стек
ЦК – проверяет, что i<=N, если да, то переходим на следующую итерацию цикла.
КЦ – конец цикла, добавляет 1 к подверхушке стека, сравнивает с верхушкой, если <=, то переходим на ЦК КОН
(Нач: ЦИКЛ С8/C16
Е E
КЦ
Кон) КОНЦИКЛ
Поддерживает цик в разн. направлен.