bank switching, comutação de bancos:
A comutação de bancos, também conhecida como comutação de memória bancária, é um método de expansão da memória de acesso aleatório (RAM) disponível em um computador, alternando o acesso entre dois ou mais bancos de memória que compartilham uma série de endereços de memória, que são reservados antes do início da comutação. Apenas um banco pode ser acessado diretamente de cada vez, e quando um banco não está ativo, ele retém todos os dados armazenados nele. Antes que outro banco possa ser usado, o sistema operacional, driver ou programa deve emitir um comando explicitamente para o hardware realizar a comutação. No entanto, devido à natureza demorada da comutação de bancos, operações intensivas em memória podem levar mais tempo com a memória de comutação de bancos em comparação com a memória principal. A memória com comutação de bancos geralmente assume a forma de um cartão de expansão que é plugado em um slot na placa-mãe.
A comutação de bancos foi utilizada em vários sistemas de computador ao longo da história para superar as limitações da memória endereçável limitada. Em sistemas de computador antigos com processadores de 8 ou 16 bits, como o IBM PC e o Apple II, que tinham memória endereçável limitada devido à largura dos barramentos de dados, a comutação de bancos era uma técnica popular para expandir a memória disponível além do espaço de endereçamento físico. Ao dividir a memória em bancos, cada banco pode ser acessado seletivamente, permitindo o uso de mais memória do que o espaço de endereçamento do processador permitiria.
Uma das características-chave da comutação de bancos é a necessidade de comandos explícitos para alternar entre os bancos. Ao contrário dos sistemas modernos com gerenciamento de memória virtual, onde o sistema operacional lida automaticamente com a troca de memória, a comutação de bancos requer controle manual pelo software. Isso significa que programas ou drivers precisam ser especialmente escritos para aproveitar a memória com comutação de bancos, emitindo comandos para alternar entre os bancos conforme necessário. Isso pode adicionar complexidade ao desenvolvimento de software e também pode afetar o desempenho, já que o overhead de emitir comandos de comutação pode introduzir atrasos em operações intensivas em memória.
Apesar de suas limitações, a comutação de bancos foi amplamente utilizada no passado para fornecer capacidade adicional de memória em computadores com memória endereçável limitada. Também foi usada em aplicações especializadas onde o custo de adicionar mais memória física era proibitivo, como em sistemas embarcados ou consoles de jogos mais antigos. No entanto, com o advento de arquiteturas de computador mais avançadas e a disponibilidade cada vez maior de RAM de alta capacidade e acessível, o uso da comutação de bancos diminuiu em sistemas de computação modernos.
Em conclusão, a comutação de bancos é um método de expansão de memória de computador que foi amplamente utilizado no passado para superar as limitações da memória endereçável limitada. Permite o acesso alternado a dois ou mais bancos de memória, compartilhando um conjunto de endereços de memória reservados. No entanto, sua necessidade de comandos explícitos para alternar entre os bancos e o overhead associado a isso pode afetar o desempenho de operações intensivas em memória. A comutação de bancos era comum em sistemas de computador mais antigos, como o IBM PC e o Apple II, mas seu uso diminuiu com o avanço das arquiteturas de computador e a disponibilidade de RAM de alta capacidade.
A comutação de bancos também foi usada em aplicações especializadas onde o custo de adicionar mais memória física era proibitivo, como em sistemas embarcados ou consoles de jogos mais antigos. No entanto, com o aumento da capacidade de memória e a redução dos custos de RAM, essa prática tem se tornado menos comum em sistemas de computação modernos.
A comutação de bancos é uma técnica que requer controle manual pelo software, com a necessidade de emitir comandos para alternar entre os bancos de memória. Isso pode adicionar complexidade ao desenvolvimento de software e pode afetar o desempenho em operações intensivas em memória. No entanto, em sistemas de computador com memória endereçável limitada, a comutação de bancos pode ser uma maneira eficaz de expandir a capacidade de memória disponível.
Em resumo, a comutação de bancos foi uma técnica popular no passado para expandir a memória de computador, permitindo o acesso alternado a dois ou mais bancos de memória. No entanto, seu uso diminuiu com o avanço das arquiteturas de computador e a disponibilidade de RAM de alta capacidade. Apesar de suas limitações, a comutação de bancos ainda é utilizada em aplicações especializadas e pode ser uma solução eficaz em sistemas com memória endereçável limitada.