Собственно известно, что в Союз-НЕОН 22-разрядный физический адрес памяти образуется сложением соответствующего регистра диспетчера памяти, где располагаются разряды с 21 по 12, и виртуального адреса, откуда берутся разряды с 12 по 0. Как видим, общими являются разряды 12, а значит при сложении возможен перенос. В ТО написано, что перенос осуществляется в разряды 13-19, но по анализу прошивки P3 это не так. Сам перенос осуществляется в разряды с 13 по 20. А вот с последним 21-м разрядом интересная ситуация. Если в нём будет реализован полноценный перенос, то он может очистится и физический адрес будет указывать на самое начало памяти, что может привести к её порче, а там находятся регистры виртуальных устройств. Поэтому разработчики поступили следующим образом, вот логическое выражение формирования 21 разряда физического адреса: MMBA21*/PG7+MMBA15*MMBA14*MMBA20*/PG7*CA14*MMBA17*MMBA16*MMBA19*MMBA18. Суть в том, что он будет в единице в том случае, если он уже был в единичном состоянии или был перенос в него. В нулевом состоянии он останется, если он уже был в нулевом состоянии и не было переноса в него. Таким образом не будет портится самое начало памяти, а будет портится, в случае чего, самое начало 2 Мб.




Ответить с цитированием