Комментарии 14
Странно, я когда Intel Reference Manual читал в Университете, то там как раз приводилась модель, основанная на сегментации и трансляции страниц. В этой связи очень странно выглядит утверждение:
Наиболее распространенная модель адресации памяти - плоская, когда у каждого элемента памяти есть глобальный адрес.
Вроде как в рамках самой распространенной архитектуры все не так.
x86 - хорошо известная, но не единственная архитектура с сегментной адресацией. Эта статья была задумана с целью немного рассказать про Plessey System 250 и Intel iAPX 432.
по топику меньшая половина статьи. Ну как-то не очень с названием связь.
Вроде как в рамках самой распространенной архитектуры все не так.
С точки зрения прикладного программиста - всё именно так.
Трансляция страниц появилась только в i386, в более ранних моделях ее не было. Сейчас самой распространенной архитектурой стала amd64, в которой использование сегментов очень ограничено.
В превью статьи написано про гигабайт адресуемой памяти, а в статье про мегабайт.
Где-то тут баг.
Как-то реверсил старые x86 утилиты попутно переписывая их на C в BorlandС 3.1. Но возня с этими farmalloc и farcalloc настолько меня утомила, что установил DJGPP с плоской моделью памяти - и процесс пошел гораздо приятнее.
Можно было историю начать с Intel 8080 и Zilog Z80. Архитектура Intel 8086 является развитием 8080.
Там не было поддержки серментной адресации. Хотя был i86-совместимый процессор Nec V20, поторый позволял запускать код i80 в отдельном сегменте...
Да, но безсегментный (плоский) формат COM напрямую перенесён в DOS из предшественника. А этот формат, как мы помним, был весьма популярен. Кроме того, 8080 поддерживал работу стека в отдельном пространстве памяти.
Сегментная адресация памяти