nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 17:02



Reply to topic  [ 9 posts ] 
Доступ к быстрой памяти 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Известный метод "по Пентагоновски" - картинка от RomanRom2:

Attachment:
fast-pentagon.gif
fast-pentagon.gif [ 15.85 KiB | Viewed 5087 times ]


Данный метод включает в нулевое окно адресного пространства нулевую страницу быстрого ОЗУ (aka "кэшъ").

Ещё есть другой способ, при котором можно ещё щёлкать страницами быстрого ОЗУ - ждём комментариев от тех, кто разобрался :roll:

_________________
:dj: https://mastodon.social/@Shaos


21 Dec 2020 19:31
Profile WWW
Writer

Joined: 02 Dec 2020 14:53
Posts: 21
Reply with quote
В документации очень пространная фраза про работу с кеш-памятью спринтера, вот она:

Quote:
7. КЭШ-ОЗУ
Кэш-ОЗУ подключается двумя способами – через порт #FB стандартно по Pentagon-овски и как подобно ПЗУ через спец-порт...


Мне как человеку не знающему все тонкости спектрумов, до недавнего времени было неизвестно что на пентагоне был кеш. это была микросхема памяти, которая могла подменить первое окно процессора, там где обычно находится ПЗУ. Это открывало ряд новых доселе невиданных возможностей, подробнее об этом можно почитать в zxpress: https://zxpress.ru/article.php?id=14724
Собственно картинка выше - это выдержка из той статьи.

На спринтере же кеш имеет еще одно преимущество - это быстродействующая SRAM, с которой процессор работает на полной скорости 21мгц (с основным ОЗУ на DRAM работает на 7мгц).
Поэтому, что называется открывая америку - для меня фраза из документации начала обретать смысл :) Т.е. "стандартно по пентагоновски" - это означает через порт #FB, код на картинке выше. И это так же подтверждают многочисленные исследования исходников из "мастер-архивов" (это те архивы, которые выкладывали Иван, Денис, Антон, в которых мы все сейчас копаемся).

Финальная цель исследования - научиться переключать банки кеш, ведь в спринтере в данный момент установлена микросхема с 64кб. На сколько я понял, доступна может быть только одна страница кеша, которая всегда будет замаплена в первое окно процессора (но это не точно). А это 16кб. Технический дизайн спринтера предусматривает 256кб кеша, т.е. 16 страниц. Технически можно включить в схему все 256кб, осталось только научится переключать страницы программно.

Это ведь открывает еще больше возможностей - 256кб высокоскоростной памяти!

Мы так же знаем, что основная функция этой кеш памяти - загрузка конфигураций пользователя в ПЛИС. В этом режиме будет доступно только 64кб, однако прежде чем начнется загрузка конфы в ПЛИС, то эти 64кб надо как то загрузить. Следовательно, игрушка TITD точно это делает. Осталось выяснить как точно это делается ) И как результат - написать небольшой тест, который перебирает страницы кеша и таким образом выявляет сколько его установлено в компьютере.


22 Dec 2020 04:57
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
в Пентагоне оно тоже вроде пиарилось как быстродействующая SRAM, работающая без вейтов даже на максимальной турбо-скорости

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 05:00
Profile WWW
Writer

Joined: 02 Dec 2020 14:53
Posts: 21
Reply with quote
на сколько я помню, то максимальная турбоскорость в пентагоне тогда была 7мгц ) а на 7мгц работает "почти любая" память )


22 Dec 2020 05:13
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
вроде без вейтов только 3.5 МГц, а на 7 проц уже начинает конфликтовать с видеоконтроллером, поэтому тормозится

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 05:32
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот RomanRom2 напомнил, что в английской части есть инфа про FastRAM:


Quote:
Q10010. How to use FastRAM?

Summary

This article describe features of using FastRAM.

Guide

For activating FastRAM you need execute CPU instruction IN A,(#FB). After that,
in the first memory frame (0000h-3FFFh) will paged empty 16K of FastRAM memory.
You may use this memory for more fast routine speed. FastRAM not require any
allocation calls for use it. And you shouldn't stored the actual data there. Remember,
if you execute external program, it may destroy your data and code in FastRAM.
And you must do copy your code to FastRAM again for restore it.
Also you can't call BIOS or DSS function during FastRAM are activated.
For deactivating FastRAM you need execute CPU instruction IN A,(#7B).
After that, a first memory frame will paged back 16K of normal memory.

We recommend to disable interrupts for avoid any errors when you will switch FastRAM.

More information

Today, only 16K of FastRAM are available for use.
If you want to use the interrupts, you should put interrupt handler in #0038.
If you plan to use Accelerator in your FastRAM-routine, you must placed data for it more high than #3FFF.

FastRAM will be useful in following cases:

1. If you not use the Accelerator.
2. If you use the RAM data not so often.
3. If program stack was placed into the FastRAM.

1 August 2002.
PETERS PLUS LTD.

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 16:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Судя по схеме Sp2000 быстрая память подключена следующим образом:

Attachment:
Screenshot from 2020-12-26 22-23-30.png
Screenshot from 2020-12-26 22-23-30.png [ 81.68 KiB | Viewed 5001 times ]


Возможно доступ ко всему объёму быстрой памяти может осуществляться аналогично работе с ISA (проверил - нет как c ISA не выходит)

P.S. Также наверное можно попробовать при подключении 128Кб срама подать RA17 на лишний битик адреса (в существующей схеме он игнорируется)
Хотя судя по исходникам прошивки RA17 в случае ISA/CACHE просто является инвертированным RA16, который в свою очередь выбирает что использовать - ISA (RA16=0) либо CACHE (RA16=1)

_________________
:dj: https://mastodon.social/@Shaos


26 Dec 2020 23:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот как страницы быстрой памяти заполняет Thunder:

Attachment:
AllFastRAM.gif
AllFastRAM.gif [ 127.39 KiB | Viewed 4973 times ]


Похоже номера страниц (0,1,2,3) посылаются в порт #5C, что подменяет нулевое окно памяти по "кэшу"

_________________
:dj: https://mastodon.social/@Shaos


28 Dec 2020 21:09
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Судя по схеме Sp2000 быстрая память подключена следующим образом:

Image

Возможно доступ ко всему объёму быстрой памяти может осуществляться аналогично работе с ISA (проверил - нет как c ISA не выходит)

P.S. Также наверное можно попробовать при подключении 128Кб срама подать RA17 на лишний битик адреса (в существующей схеме он игнорируется)
Хотя судя по исходникам прошивки RA17 в случае ISA/CACHE просто является инвертированным RA16, который в свою очередь выбирает что использовать - ISA (RA16=0) либо CACHE (RA16=1)

RomanRom2 уже поставил быструю память большего размера на свою новую плату и тут есть проблема - биты RA16 и RA17 нельзя подавать на новые адресные входы, т.к. они участвую в выборе CACHE или ISA и для CACHE никогда не будут менять свои значения. Моё предложение - подключать лишние битики к тому же регистру, который управляет старшими битиками ISA (ISA_PORT equ 09FBDh):

Attachment:
Screenshot from 2020-12-27 18-14-44.png
Screenshot from 2020-12-27 18-14-44.png [ 28.98 KiB | Viewed 4802 times ]

CASHA16 можно взять с BA14 (нулевой бит порта 09FBDh - выход Q0), а если память будет больше 128кб, то остальные биты адреса брать по порядку - CASHA17 взять с BA15 (бит 1 порта идущий на выход Q7), CASHA18 взять с BA16 (бит 2 порта идущий на выход Q1) и т.д.

_________________
:dj: https://mastodon.social/@Shaos


29 Jan 2021 19:56
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.