Как "заюзать" 486

Другие микроконтроллеры и микропроцессоры, не попавшие в предыдущие разделы

Moderator: Shaos

User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

если кому нужно: программа для разбивки на части или сборки образов пзу - для 8 битных пзу на 16-и и 32-битных шинах. (пока реально использовал только для восстановления биусов из пзу :) )
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

shoorick wrote:если кому нужно: программа для разбивки на части или сборки образов пзу - для 8 битных пзу на 16-и и 32-битных шинах. (пока реально использовал только для восстановления биусов из пзу :) )
Спасибо, конечно, но такая тулза пишется за 5 минут. %) Ну и WinHex никто не отменял...
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

щитай 5 мин уже сэкономил :P
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

HardWareMan wrote:И еще вопрос, он же стартует в реал моде по адресу FFFF:0000 что дает полный физический как 000FFFF0, так?
Так.
HardWareMan wrote:А если я его потом сразу загоню в анрил моде то я могу же сделать джамп за пределы 1 мега, например в F0000000?
По идее да, только зачем? м/с статики и так надо 4 штуки по 8 бит или 2 шт по 16. Вот ежели бы на fpga сделать мост для ddr, или хотя бы sdram-133, было бы толк, но тогда лучше смотреть в сторону p-133 и выше. Меня давно мысль гложет, как бы умудриться запустить пень-раз чтобы частота выборки из памяти была равна частоте ядра. По идее это бы дало нехилый прирост производительности на больших объемах данных при совместимости с огромным количеством ПО. Наверно брежу... ;)
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

jdigreze wrote:
HardWareMan wrote:И еще вопрос, он же стартует в реал моде по адресу FFFF:0000 что дает полный физический как 000FFFF0, так?
Так.
Гут!
jdigreze wrote:
HardWareMan wrote:А если я его потом сразу загоню в анрил моде то я могу же сделать джамп за пределы 1 мега, например в F0000000?
По идее да, только зачем? м/с статики и так надо 4 штуки по 8 бит или 2 шт по 16.
Аха, статики - хоть отбавляй. 33МГц с нулевым вэйтстэйтом получить можно. Смысл в том, чтобы первый мег был полностью из ОЗУ, как и второй. А БИОС чтобы был вверху.
jdigreze wrote:Вот ежели бы на fpga сделать мост для ddr, или хотя бы sdram-133, было бы толк, но тогда лучше смотреть в сторону p-133 и выше. Меня давно мысль гложет, как бы умудриться запустить пень-раз чтобы частота выборки из памяти была равна частоте ядра. По идее это бы дало нехилый прирост производительности на больших объемах данных при совместимости с огромным количеством ПО. Наверно брежу... ;)
Первопень, конечно, заманчевее (есть пара 233МГц ММХ), но слишком много обвеса. Хочется чего-нибудь попроще.
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

в анрыл моде, на сколько мне помнится, можно любые адреса виртуализировать в реальные, просто при запросе по несуществующим адресам будет происходить бряк. на этом зиждется своп в винде. эээх... тут у меня огромные пробелы в предметной области начинаются. дальше 286-го я уже не писал ничего "прямого".
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Отписал уже неделю как чуваку, а ответа нет...
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Эээх...
Failed to deliver to 'wdubel@bellsouth.net'
SMTP module(domain bellsouth.net) reports:
gateway-f1.isp.att.net: Bad SMTP prompt at the host
Видимо самому придется штурмовать проц самому.
d_wanderer
Senior
Posts: 180
Joined: 28 Feb 2006 21:34

Post by d_wanderer »

HardWareMan wrote:Эээх...
Видимо самому придется штурмовать проц самому.
Перерыл весь архив - а интеловой схемы так и не нашел.
Есть только AMDшная схема.

http://www.amd.com/epd/desiging/evalboa ... 2649_1.pdf
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

d_wanderer wrote:
HardWareMan wrote:Эээх...
Видимо самому придется штурмовать проц самому.
Перерыл весь архив - а интеловой схемы так и не нашел.
Есть только AMDшная схема.

http://www.amd.com/epd/desiging/evalboa ... 2649_1.pdf
Спасибо, конечно, но это не то. Мне надо не схема компа на непонятном чипсете, а схема минимальной обвязки i486, чтобы подрубить ПЗУ, статическое ОЗУ и пару портов. Как в сабже (смотреть первый пост трида). Есть такая инфа?
d_wanderer
Senior
Posts: 180
Joined: 28 Feb 2006 21:34

Post by d_wanderer »

HardWareMan wrote: Спасибо, конечно, но это не то. Мне надо не схема компа на непонятном чипсете, а схема минимальной обвязки i486, чтобы подрубить ПЗУ, статическое ОЗУ и пару портов
Так вроде судя по этой схеме ПЗУ прямо на прямую сажается - для увеличения нагрузочной способности там просто драйвер шины стоит. Чипсет нужен только для формирования других шин и интерфесов.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Воо, нарыл оффдоку 97го года. Многое проясняется.

Например:
4.3.3 Cacheable Cycles
Any memory read can become a cache fill operation. The external memory system can allow a
read request to fill a cache line by asserting KEN# one clock before RDY# or BRDY# during the
first cycle of the transfer on the external bus. Once KEN# is asserted and the remaining three requirements
described below are met, the Intel486 processor fetches an entire cache line regardless
of the state of KEN#. KEN# must be asserted in the last cycle of the transfer for the data to
be written into the internal cache. The Intel486 processor converts only memory reads or
prefetches into a cache fill.
KEN# is ignored during write or I/O cycles. Memory writes are stored only in the on-chip cache
if there is a cache hit. I/O space is never cached in the internal cache.
To transform a read or a prefetch into a cache line fill, the following conditions must be met:
1. The KEN# pin must be asserted one clock prior to RDY# or BRDY# being asserted for the
first data cycle.
2. The cycle must be of a type that can be internally cached. (Locked reads, I/O reads, and
interrupt acknowledge cycles are never cached.)
3. The page table entry must have the page cache disable bit (PCD) set to 0. To cache a page
table entry, the page directory must have PCD=0. To cache reads or prefetches when paging is disabled, or to cache the page directory entry, control register 3 (CR3) must have
PCD=0.
4. The cache disable (CD) bit in control register 0 (CR0) must be clear.
External hardware can determine when the Intel486 processor has transformed a read or prefetch
into a cache fill by examining the KEN#, M/IO#, D/C#, W/R#, LOCK#, and PCD pins. These
pins convey to the system the outcome of conditions 1–3 in the above list. In addition, the
Intel486 processor drives PCD high whenever the CD bit in CR0 is set, so that external hardware
can evaluate condition 4.
Cacheable cycles can be burst or non-burst.
Т.е. по минимуму держать KEN# в пассиве и дело в шляпе.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Афигеть. Читаю этот док (сверстал книжонку формата А5 на работе) и плачу.... Тут даже расписано как кэш организовать к нему и даже порты подключать... Как для идиотов. Сразу ясно как буржуй работал... Тут схема есть, юзаются те же микрухи что и у него. Слизал т.е. %)
Craz
Fanat
Posts: 64
Joined: 11 Mar 2007 03:57
Location: 217.9.147.66

Post by Craz »

Вау! :rotate:
HardWareMan, выложишь потом результаты?
User avatar
poisk
Writer
Posts: 21
Joined: 02 Jan 2009 05:23
Location: Киров, РФ

80286

Post by poisk »

Не совсем про четвёрку. Есть книга "Архитектура микропроцессора 80286", авторы С.П.Морс и Д.Д.Алберт, переведена на русский. Довольно полной описание двушки плюс есть глава "Проектирование компьютера".