> man operating_systems
Переход на страницу  1 2 3 4 [5] 6 7
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
ossadchy
Вторник 07.10.2008 12:57
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Да вообще создание чего-то нового подразумевает изначально пристальное изучение всего старого... часто помогает.
А режим интерпретации в чистом виде уже, по сути, канул в лету.
Наверх
Сайт
NightRadio
Вторник 07.10.2008 14:25
ID пользователя #1102
Зарегистрирован: Четверг 11.09.2008 14:48
Сообщений: 23
И тем не менее вот вопрос про интерпретатор.
Например, простое выражение a = b + c

Вот что будет в стековом байт-коде:
push [b]
push [c]
add
pop [a]
ну типа такого....

Регистровый байт код действительно в чистом варианте с RISC командами даст более большой код и будет выполняться дольше.

А что, если ввести еще один тип байт-кода. С использованием указателя на аккумулятор. Вышеприведенное выражение будет выглядеть на нем вот так:
set_acc a //пусть аккумулятор acc указывает на переменную a
= [b] //*acc = [b]
+= [c] //*acc += [c]

Всего три команды. И выполняются быстрее чем стековые.
Что скажете на это?
Наверх
Dron
Вторник 07.10.2008 17:38


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Мне кажется лучше всего add a, b, c

И регистры не нужны. Для процессора - регистры - это быстрая память. Для VM вся память одинаковая.

Хотя с другой стороны регистры позволяют компактифицировать команды.

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

Андрей Валяев
Наверх
Сайт
NightRadio
Вторник 07.10.2008 18:53
ID пользователя #1102
Зарегистрирован: Четверг 11.09.2008 14:48
Сообщений: 23
Тоже вариант!
Наверх
ossadchy
Вторник 07.10.2008 19:50
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
NightRadio написал(а) ...

Всего три команды. И выполняются быстрее чем стековые.
Что скажете на это?

Нечто безсмысленное или слишком глубокомысленное. Регистр, по определению, это отдельная ячейка памяти. Иначе его смысл теряется.
Можете ввести команды:

add_acc mem // одноадресная машина(ACC += mem)
add reg,mem // двухадресная с регистрами(reg += mem)
add mem1,mem2 // двухадресная без регистров(mem1 += mem2)
add mem1,mem2,mem3 // трехадресная mem1 = mem2 + mem3


P.S. Все равно представление деревом ПРОГРАММЫ В ЦЕЛОМ будет короче. Т.к. там компактно представлены и высокоуровневые конструкции.

[ Редактирование Вторник 07.10.2008 22:50 ]
Наверх
Сайт
Dron
Вторник 07.10.2008 21:43


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
2ossadchy: Оверквотинг тоже наказуем

Если использовать многоаргументные команды, это конечно круто, но при явном указании адресов - очень большой размер команд получится.

Я придумал, надо в начале блока кода ассоциировать ячейки памяти с "регистрами". Взято в кавычки потому, что в данном случае это просто короткий номер ячейки.
assign r1, mem1
assign r2, mem2
assign r3, mem3

И дальше много кода работают просто с r1, r2, r3 а не с большими 32-х битными mem*

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

Андрей Валяев
Наверх
Сайт
ossadchy
Вторник 07.10.2008 21:55
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Дык меня легче расстрелять, чем тут держать.... право, дорогие админы, уж как-то через чур...
Наверх
Сайт
Dron
Вторник 07.10.2008 23:47


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Да ладно, не напрягайся.. главное чтобы твои посты содержали смысл. Смысл должен компенсировать мелкие нарушения регламента...

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

Андрей Валяев
Наверх
Сайт
NightRadio
Среда 08.10.2008 05:50
ID пользователя #1102
Зарегистрирован: Четверг 11.09.2008 14:48
Сообщений: 23
Вообщем-то я и имел в виду ассоциацию ячеек с регистрами Подобным образом происходит у меня в языке Pixilang: есть большая табличка; первые 256 ячеек - общие регистры (причем первые потом могут отображаться на настоящие железные регистры); остальные ячейки - глобальные переменные.
А вообще, идея упаковки SDE зацепила.. Покопаю в этом направлении
Наверх
Dron
Среда 08.10.2008 12:10


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
256 ячеек - ИМХО очень мало.

Просто я подумал, что если все переменные делать как бы статическими. То есть все будет храниться в памяти. И для оперирования просто говоришь что вот эта ячейка будет отныне R1, эта R2, а эта R3... и начинаешь работать с ними, пользуясь компактной регистровой формой мнемоник. Хотя не отрицая и обращения к памяти.

Вообще 80% кода оперируют 20% данных или как там.

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

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

Может я чего-то не учел? но идея ИМХО симпатичная

Вообще для безопасности код должен быть отдельно, данные отдельно. Соответственно представление кода может быть и семантическим. Можно даже отказаться от адресов. объекты по идентификаторам?


[ Редактирование Среда 08.10.2008 12:14 ]

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

Андрей Валяев
Наверх
Сайт
Переход на страницу  1 2 3 4 [5] 6 7  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.