Защита адреса при записи
2016-12-10 15:16Дошёл до реализации необычного свойства процессора микро-БЭСМ, отсутствующего у современных компьютеров. Каждое слово в оперативной памяти имеет дополнительный бит запрета записи. При попытке записи по этому адресу возникает прерывание "защита адреса при записи". Чтобы всё-таки иметь возможность изменить значение (и бит запрета), память имеет дополнительный сигнал, отменяющий защиту.
Получается полезная возможность, похожая на const в языке Си, но при этом защиту можно включать и отключать по ходу выполнения программы. Что-то отдалённо похожее - теговая архитектура - существовало в некоторых ранних компьютерах, но не прижилось.
Получается полезная возможность, похожая на const в языке Си, но при этом защиту можно включать и отключать по ходу выполнения программы. Что-то отдалённо похожее - теговая архитектура - существовало в некоторых ранних компьютерах, но не прижилось.

no subject
Date: 2016-12-10 23:47 (UTC)Все влазят, но не всех убивает.
no subject
Date: 2016-12-11 01:11 (UTC)no subject
Date: 2016-12-11 03:38 (UTC)no subject
Date: 2016-12-11 03:39 (UTC)no subject
Date: 2016-12-11 04:20 (UTC)no subject
Date: 2016-12-11 04:22 (UTC)no subject
Date: 2016-12-11 04:42 (UTC)no subject
Date: 2016-12-11 05:00 (UTC)void foo(void)
{
#pragma push(fuck)
#pragma fuck(off)
a = 0;
#pragma pop(fuck)
}
no subject
Date: 2016-12-11 08:01 (UTC)Это наверное легко реализуется на встроенных блоках FPGA. А если память реализована на обычной SDRAM? Все равно, если защита записи включена и идет обращение на запись без явного отключения защиты, придется этот контрольный бит сначала прочитать. Ну да, кеширование и прочее как-то помогут, да и запись менее частое событие. Но, думаю, на дескрипторы страниц (вместо битов для отдельных слов) не просто так перешли в более свежих архитектурах.
no subject
Date: 2016-12-11 08:33 (UTC)ПК - признак команды
РЭ - режим БЭСМ-6
ЗЧП - запрет чтения операнда из памяти
ЗЗП - запрет записи операнда в память
ЗВП - запрет выборки команды из памяти
ЗПУ - запрет передачи управления на команду
Часть битов можно в первом приближении ставить от типа секции, но с ЗПУ такой финт не пройдёт.
Если дело дойдёт до портирования юникса на микро-БЭСМ, мне кажется, имело бы смысл упростить хардвер и выкинуть все эти теги совсем. А режим БЭСМ переключать битом в регистре режимов.
no subject
Date: 2016-12-11 08:34 (UTC)no subject
Date: 2016-12-11 08:53 (UTC)no subject
Date: 2016-12-11 09:01 (UTC)no subject
Date: 2016-12-11 11:39 (UTC)no subject
Date: 2016-12-11 13:45 (UTC)no subject
Date: 2016-12-11 18:50 (UTC)no subject
Date: 2016-12-11 19:30 (UTC)Самый прикол в том, что признак const у слова можно менять в рантайме. Ни один из известных языков даже мысли такой не допускает.
no subject
Date: 2016-12-11 19:31 (UTC)no subject
Date: 2016-12-11 19:32 (UTC)no subject
Date: 2016-12-11 19:36 (UTC)no subject
Date: 2016-12-11 21:48 (UTC)no subject
Date: 2016-12-11 21:55 (UTC)Тогда при вызове функции можно сразу по умолчанию запрещать переписывать данные стека, например. Или наоборот, разрешать запись только в выделенную память (правда это будет медленно).
Зато у вас будет большой геморрой с многопоточностью. :-)
no subject
Date: 2016-12-11 22:04 (UTC)no subject
Date: 2016-12-12 04:25 (UTC)no subject
Date: 2016-12-12 07:58 (UTC)Поэтому режим этот никогда не включали, кроме, может быть, особо тяжёлых случаев отладки.