Я не знаю, какие аспекты работы 80286 Вы имеете в виду, но хочу напомнить, что главной фичей в 80286 была сегментная адресация, заставлявшая программиста переключать сегменты. Этот механизм порождает кучу сложностей при программировании на ассемблере и при написании компилятора, и даже при предельно эффективном программировании сильно тормозит вычисления. (Я не стал упираться в 16-битное ограничение размера сегмента - это можно исправить; я говорю именно о принципе сегментирования.) В 80386 добавили ещё два сегментных регистра, но программисты предпочти использовать Flat-модель, когда используется один сегмент (точнее, все четыре сегмента (CS, DS, ES и SS) совпадают и покрывают всё адресное пространство), а защита памяти производится гораздо менее гибким механизмом страниц (снижение гибкости обусловлено фиксированным размером страницы).И вообще, аппаратура никогда не сможет эффективно отслеживать ошибки - это надо возлагать на компилятор и на runtime проверки (если стандарты языка не предусматривают свободы программиста делать опасные и неотслеживаемые компилятором вещи). Аппаратная поддержка таких проверок сразу породит проблемы совместимости, когда на одних моделях процессоров что-то будет работать, а на других будет сбоить.
|