Cień RAM (żołądź)

Shadow RAM w mikrokomputerach Acorn BBC Micro , Master-series i Acorn Electron to nazwa nadana specjalnej implementacji bufora ramki w celu zwolnienia pamięci głównej do wykorzystania przez kod programu i dane. Niektóre implementacje shadow RAM pozwalają również na podwójnie buforowaną grafikę.

Tło

Maszyny BBC Micro, Master-series i Electron wykorzystują 8-bitowe procesory 6502 i 65C102 z 16-bitową przestrzenią adresową. Ta przestrzeń adresowa jest podzielona na 32 KB pamięci RAM (od 0x0000 do 0x7FFF), 16 KB bocznej stronicowanej ” przestrzeni adresowej (od 0x8000 do 0xBFFF) i 16 KB przestrzeni systemu operacyjnego (od 0xC000 do 0xFFFF). Pamięć wideo lub ekranu jest zwykle przydzielana w razie potrzeby od 0x7FFF w dół, zajmując zaledwie 1 KB dla teletekstu tryb 7 (a więc region od 0x7C00 do 0x7FFF), lub aż 20 KB dla trybów 0-2 (a więc region od 0x3000 do 0x7FFF). W związku z tym pamięć ekranowa może zajmować znaczną ilość dostępnej, adresowanej bezpośrednio 32 KB pamięci RAM.

Przegląd

Shadow RAM to blok pamięci RAM, który można uznać za znajdujący się równolegle do normalnej mapy pamięci, do którego system ma dostęp tylko w określonych warunkach. Gdy włączona jest pamięć Shadow RAM, obszar pamięci zwykle używany jako pamięć ekranowa staje się dostępny dla programu BASIC oraz dla aplikacji korzystających z oficjalnie udokumentowanych interfejsów systemu operacyjnego. Biorąc pod uwagę maksymalne wymaganie 20 KB pamięci ekranu w danych systemach, ilość dostarczonej pamięci RAM w tle wynosi zazwyczaj 20 KB.

Shadow RAM była standardowo montowana w BBC Micro Model B + iw serii BBC Master, ale była opcjonalną funkcją zapewnianą przez rozszerzenia innych firm we wcześniejszych systemach BBC Micro i Acorn Electron. Produkt Aries-B20, początkowo sprzedawany przez Cambridge Computer Consultants, oferował 20 KB shadow RAM dla BBC Model B, w przejrzysty sposób przekierowując dostępy inne niż bufor ramki do shadow RAM dla adresów w obszarze pamięci wideo 20 KB.

W systemach opartych na modelu BBC B+, takich jak stacja robocza Acorn Cambridge , układ programowalnej tablicy logicznej (PAL) kontroluje dostęp do pamięci i udostępnia pamięć ekranu procesorowi, przekierowując dostęp do pamięci do odpowiednich lokalizacji pamięci. Gdy tryb cienia jest włączony, układ PAL monitoruje adresy instrukcji pobieranych przez procesor, a jeśli takie instrukcje zostały pobrane z zakresu pamięci od 0xA000 do 0xAFFF lub od 0xC000 do 0xDFFF, są one uważane za część VDU sterowników, które mogą uzyskać dostęp do pamięci ekranu.

W związku z tym wszystkie dostępy do pamięci wykonywane przez instrukcje pobrane z tych regionów sterownika VDU, które następnie uzyskują dostęp do pamięci w zakresie od 0x3000 do 0x7FFF, są uważane za dostęp do pamięci ekranu, a układ PAL wysyła sygnał do wybrania „cienia” 20 KB bank pamięci dla takie instrukcje, aby mogły czytać lub pisać na ekranie. Wszystkie inne dostępy do pamięci RAM w trybie cienia są kierowane do ciągłego regionu pamięci RAM od 0x0000 do 0x7FFF (i potencjalnie do 0xAFFF, jeśli jest ujawniony), który nie obsługuje pamięci ekranu. Tymczasem w trybie bez cienia lub „normalnym” ten sam ciągły region obsługuje pamięć ekranu, zgodnie z konwencją w tradycyjnej architekturze BBC Micro, a pamięć cienia nie jest dostępna.

Implementacja BBC Master

W przeciwieństwie do kart rozszerzeń dla wcześniejszych systemów, implementacja Shadow RAM w BBC Master umożliwia wybór pamięci shadow lub pamięci głównej do wykorzystania jako pamięć ekranu, co odbywa się za pośrednictwem rejestru kontroli dostępu. Przełączając się między pamięcią główną i pamięcią cienia na alternatywnych klatkach, można było użyć podwójnie buforowanego wideo. Acorn dostarczył program demonstracyjny w języku BASIC , pokazujący animację przewijanej chmury z podwójnym buforowaniem i bez niego. Gra wideo Firetrack również używałaby podwójnego buforowania, gdyby obecna była pamięć RAM w tle.

W BBC Master (a także w BBC Model B+) shadow RAM jest aktywowany poprzez ustawienie najbardziej znaczącego bitu numeru trybu pamięci. Na przykład, aby użyć trybu 1 z włączoną pamięcią shadow RAM, wybrany jest tryb 129 (128 w połączeniu z 1).

Inną istotną różnicą między implementacją Shadow RAM w wersji Master a poprzednimi implementacjami oferującymi również 32 KB shadow RAM jest przydział dodatkowych 12 KB poza 20 KB cieniowania pamięci ekranu. Zamiast zajmować jeden region od 0x8000 do 0xAFFF w bocznej przestrzeni RAM, jak ma to miejsce w przypadku produktu Aries-B32 i BBC Model B +, zamiast tego zajmuje dwa regiony w Master jako „prywatna pamięć RAM”: region 4 KB od 0x8000 do 0x8FFF trzymające definicje klawiszy funkcyjnych, obszar roboczy dla systemu operacyjnego oraz definicje znaków i czcionek; region 8 KB od 0xC000 do 0xDFFF zawierający stronicowaną (boczną) pamięć ROM i obszar roboczy systemu operacyjnego. W ten sposób Master był w stanie wspierać redefinicję zestawów znaków i przydzielać pamięć do systemów archiwizacji bez zmniejszania ilości dostępnej pamięci RAM użytkownika.

Dalsze udoskonalenia

Kolejne produkty powiększyły pamięć RAM o dodatkową pamięć RAM, którą można było wykorzystać do innych celów. Na przykład produkt Aries-B32 umożliwiał kombinacje cienia / bocznej pamięci RAM 20 KB / 12 KB i 16 KB / 16 KB lub użycie 32 KB pamięci RAM jako dwóch bocznych banków pamięci RAM. Płyta Slogger Master RAM Board oferowała rozwiązanie 32 KB RAM dla Acorn Electron wraz z ulepszeniem „trybu turbo”.

Spór patentowy

Powstał spór między projektantami płytki Aries-B20 shadow RAM (Aries Computers Limited) a dwiema innymi firmami oferującymi podobne produkty, Raven Micro Products i Watford Electronics, w związku z domniemanym naruszeniem patentu GB2137382A opisującego techniki zastosowane w projekcie Aries -B20 deska. Zaangażowane produkty to Raven Micro Products (Raven-20) i Watford Electronics (32K RAM Expansion Board). Ostatecznie w 1986 roku firma Watford Electronics przejęła firmę Aries Computers w ramach „pięciocyfrowej umowy”, w tym związanych z nią patentów, po czym firma Watford sprzedawała produkty firmy Aries obok własnych produktów firmy.