Доступ к быстрой памяти

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Доступ к быстрой памяти

Post by Shaos »

Известный метод "по Пентагоновски" - картинка от RomanRom2:
fast-pentagon.gif
Данный метод включает в нулевое окно адресного пространства нулевую страницу быстрого ОЗУ (aka "кэшъ").

Ещё есть другой способ, при котором можно ещё щёлкать страницами быстрого ОЗУ - ждём комментариев от тех, кто разобрался :roll:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
RomanRom2
Writer
Posts: 21
Joined: 02 Dec 2020 14:53

Re: Доступ к быстрой памяти

Post by RomanRom2 »

В документации очень пространная фраза про работу с кеш-памятью спринтера, вот она:
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 точно это делает. Осталось выяснить как точно это делается ) И как результат - написать небольшой тест, который перебирает страницы кеша и таким образом выявляет сколько его установлено в компьютере.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

в Пентагоне оно тоже вроде пиарилось как быстродействующая SRAM, работающая без вейтов даже на максимальной турбо-скорости
Я тут за главного - если что шлите мыло на me собака shaos точка net
RomanRom2
Writer
Posts: 21
Joined: 02 Dec 2020 14:53

Re: Доступ к быстрой памяти

Post by RomanRom2 »

на сколько я помню, то максимальная турбоскорость в пентагоне тогда была 7мгц ) а на 7мгц работает "почти любая" память )
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

вроде без вейтов только 3.5 МГц, а на 7 проц уже начинает конфликтовать с видеоконтроллером, поэтому тормозится
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

Вот RomanRom2 напомнил, что в английской части есть инфа про FastRAM:

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.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

Судя по схеме Sp2000 быстрая память подключена следующим образом:
Screenshot from 2020-12-26 22-23-30.png
Возможно доступ ко всему объёму быстрой памяти может осуществляться аналогично работе с ISA (проверил - нет как c ISA не выходит)

P.S. Также наверное можно попробовать при подключении 128Кб срама подать RA17 на лишний битик адреса (в существующей схеме он игнорируется)
Хотя судя по исходникам прошивки RA17 в случае ISA/CACHE просто является инвертированным RA16, который в свою очередь выбирает что использовать - ISA (RA16=0) либо CACHE (RA16=1)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

Вот как страницы быстрой памяти заполняет Thunder:
AllFastRAM.gif
Похоже номера страниц (0,1,2,3) посылаются в порт #5C, что подменяет нулевое окно памяти по "кэшу"
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Доступ к быстрой памяти

Post by Shaos »

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):
Screenshot from 2020-12-27 18-14-44.png
CASHA16 можно взять с BA14 (нулевой бит порта 09FBDh - выход Q0), а если память будет больше 128кб, то остальные биты адреса брать по порядку - CASHA17 взять с BA15 (бит 1 порта идущий на выход Q7), CASHA18 взять с BA16 (бит 2 порта идущий на выход Q1) и т.д.
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net