Cambio banca
Bank Switching e Address Memory Switch (ASU) sono termini sinonimi per l'espansione della memoria del computer di un computer ( RAM o ROM ) oltre i suoi spazi di indirizzamento naturali , cambiando singole aree di memoria controllate dal software ma implementate nell'hardware . Questa tecnologia è parte integrante di un microprocessore o è integrata indipendentemente da esso nei sistemi informatici. Per abilitare la commutazione dei banchi, tutta o parte dell'area di memoria è riservata. In quest'area di memoria riservata (banco) viene visualizzata un'area corrispondentemente ampia di un'altra memoria.
La tecnologia di cambio banca è considerata poco elegante e una fonte di bug difficili da trovare . Viene quindi utilizzato solo se l'architettura del computer stabilisce limiti appropriati. Con la crescente diffusione dei sistemi informatici a 32 e 64 bit, non è più necessario cambiare banco, poiché queste architetture di solito forniscono spazio di indirizzamento sufficiente per la memoria.
Cambio di banco in sistemi a 8 bit
La commutazione dei banchi veniva utilizzata nei primi sistemi informatici a 8 bit; B. il C64 , perché potevano indirizzare solo 64 KiB di memoria , ma molte aziende volevano installare 64 KiB o anche più RAM e anche ROM e talvolta utilizzavano I / O mappati in memoria , che occupavano anche spazio per gli indirizzi. Anche i moduli di gioco per console video (ad es.Atari 2600 ) hanno utilizzato questa tecnologia per aumentare la memoria del programma oltre quanto originariamente previsto. Nei computer MSX con processore Z80 , la memoria era divisa in quattro banchi da 16 KiB e la RAM o la ROM erano visualizzate come richiesto.
In un altro sistema a 8 bit che richiedeva principalmente molto spazio ROM, è stato implementato, ad esempio, in modo tale che i 32 KiB inferiori dello spazio degli indirizzi rimanessero invariati e, oltre alla RAM completa e all'I / O mappato in memoria, soprattutto le routine di base del sistema operativo (loop principale, funzionamento dell'interfaccia ) e delle routine di commutazione dei banchi. L'intera metà superiore da 32 KiB dello spazio degli indirizzi era commutabile, dove poteva essere visualizzato uno fino a otto diversi banchi ROM da 32 KiB. L'unico problema sorgeva quando una parte di programma da questa metà superiore dell'indirizzo voleva chiamare una subroutine da un altro banco nella metà superiore. In questo caso c'erano speciali routine di supporto nella metà inferiore fissa che hanno aiutato a organizzare questa operazione.
Accensione della banca sul PC IBM
Successivamente il problema è continuato sul PC IBM . Tutti i PC IBM compatibili sono in modalità reale , la normale modalità operativa sotto MS-DOS e l'unica RAM possibile sui vecchi PC che in linea di principio può essere limitata a un massimo di 640 KiB di RAM direttamente utilizzabile - la cosiddetta memoria convenzionale . Pertanto, nel 1988 l' Espanded Memory System (EMS ) è stato specificato dalle società Lotus , Intel e Microsoft ("LIM"). Le schede RAM plug-in costruite secondo questo standard LIM-EMS potrebbero quindi essere utilizzate dai programmi per espandere la memoria del PC in 64 banchi KiB. Questi banchi potrebbero essere "mostrati" individualmente nello spazio degli indirizzi da un programma.
Nelle schede grafiche Super VGA è stato necessario utilizzare anche il bankwitching perché l'architettura del PC (Address A0000 solo un range di indirizzi da 64 KiB hex a AFFFF hex ) aveva previsto la memoria grafica, indirizzata tramite speciali modalità di indirizzamento fino a 256 KiB di memoria grafica potrebbe essere. Queste speciali modalità di indirizzamento sono state introdotte con lo standard EGA e hanno consentito una risoluzione grafica massima di 800 × 600 in 16 colori. Per risoluzioni o profondità di colore più elevate, a seconda del chipset della scheda grafica, c'erano diversi metodi per mostrare parti diverse della memoria grafica nella finestra degli indirizzi da 64 KiB. Il VESA BIOS Extension (VBE) versione 2.0 ha introdotto un'API standard per la commutazione della banca della memoria grafica. Con VBE versione 3, sono state aggiunte funzioni per abilitare l'accesso lineare alla memoria grafica in modalità protetta a 32 bit , in modo che il cambio di banco non fosse più necessario.
Successivamente, con l' Address Windowing Extension di Microsoft, è stata creata un'interfaccia nell'API di Windows con cui i programmi a 32 bit potevano accedere alla memoria fisica oltre il limite di 4 GiB .