Loja de controle
Um armazenamento de controle é a parte da unidade de controle da CPU que armazena o microprograma da CPU. Geralmente é acessado por um microssequenciador. Uma implementação de armazenamento de controle cujo conteúdo é inalterável é conhecida como Read Only Memory (ROM) ou Read Only Storage (ROS); aquele cujos conteúdos são alteráveis é conhecido como Writable Control Store (WCS).
Implementação
Uso antecipado
Os primeiros armazenamentos de controle foram implementados como uma matriz de diodos acessada por meio de decodificadores de endereço, uma forma de memória somente leitura. Essa tradição remonta à matriz de temporização do programa no MIT Whirlwind, descrita pela primeira vez em 1947. Os processadores VLSI modernos usam matrizes de transistores de efeito de campo para construir as estruturas ROM e/ou PLA usadas para controlar o processador, bem como seu sequenciador interno em uma implementação microcodificada. O IBM System/360 usou uma variedade de técnicas: CCROS (Card Capacitor Read-Only Storage) no Modelo 30, TROS (Transformer Read-Only Storage) no Modelo 40 e BCROS (Balanced Capacitor Read-Only Storage) nos Modelos 50, 65 e 67.
Armazenamentos graváveis
Alguns computadores foram construídos usando "microcódigo gravável" — em vez de armazenar o microcódigo em ROM ou lógica com fio, o microcódigo foi armazenado em uma RAM chamada armazenamento de controle gravável ou WCS. Às vezes, esse computador é chamado de Computador com conjunto de instruções graváveis ou WISC. Muitas dessas máquinas eram protótipos experimentais de laboratório, como o WISC CPU/16 e o RTX 32P.
Os modelos System/360 originais tinham armazenamento de controle somente leitura, mas os modelos System/360, System/370 e sucessores posteriores carregaram parte ou todos os seus microprogramas de disquetes ou outro DASD em um armazenamento de controle gravável que consiste em ultra- memória de leitura/gravação de acesso aleatório de alta velocidade. A arquitetura do System/370 incluía um recurso chamado Initial-Microprogram Load (IML ou IMPL) que podia ser invocado a partir do console, como parte do Power On Reset (POR) ou de outro processador em um complexo multiprocessador fortemente acoplado. Isso permitiu que a IBM reparasse facilmente defeitos de microprogramação no campo. Mesmo quando a maior parte do armazenamento de controle é armazenada em ROM, os fornecedores de computadores geralmente vendem armazenamento de controle gravável como uma opção, permitindo que os clientes personalizem o microprograma da máquina. Outros fornecedores, por exemplo, IBM, usam o WCS para executar microcódigo para recursos de emulador e diagnóstico de hardware.
Outras máquinas comerciais que usavam microcódigo gravável incluem os Burroughs Small Systems (décadas de 1970 e 1980), os processadores Xerox em suas máquinas Lisp e estações de trabalho Xerox Star, a família DEC VAX 8800 ("Nautilus") e as máquinas Symbolics L e G (década de 1980). Algumas máquinas DEC PDP-10 armazenavam seu microcódigo em chips SRAM (cerca de 80 bits de largura x 2 Kwords), que eram normalmente carregados na inicialização através de alguma outra CPU front-end. Muitas outras máquinas ofereciam armazenamentos de controle graváveis programáveis pelo usuário como uma opção (incluindo os minicomputadores da série HP 2100, DEC PDP-11/60 e Varian Data Machines V-70). O Mentec M11 e o Mentec M1 armazenavam seu microcódigo em chips SRAM, carregados na inicialização por meio de outra CPU. O Data General Eclipse MV/8000 ("Eagle") tinha um armazenamento de controle SRAM gravável, carregado na inicialização por meio de outra CPU.
O WCS oferecia várias vantagens, incluindo a facilidade de corrigir o microprograma e, para certas gerações de hardware, um acesso mais rápido do que os ROMs poderiam fornecer. O WCS programável pelo usuário permitiu que o usuário otimizasse a máquina para fins específicos.
Alguns projetos de CPU compilam o conjunto de instruções em uma RAM gravável ou FLASH dentro da CPU (como o processador Rekursiv e o Imsys Cjip) ou um FPGA (computação reconfigurável).
Várias CPUs Intel na família de arquitetura x86 têm microcódigo gravável, começando com o Pentium Pro em 1995. Isso permitiu que bugs no microcódigo Intel Core 2 e no microcódigo Intel Xeon fossem corrigidos no software, em vez de exigir a substituição de todo o chip. Essas correções podem ser instaladas pelo Linux, FreeBSD, Microsoft Windows ou pelo BIOS da placa-mãe.
Sincronizar, travar e evitar uma condição de corrida
A loja de controle geralmente possui um registrador em suas saídas. As saídas que voltam para o sequenciador para determinar o próximo endereço precisam passar por algum tipo de registro para evitar a criação de uma condição de corrida. Na maioria dos projetos, todos os outros bits também passam por um registrador. Isso ocorre porque a máquina funcionará mais rápido se a execução da próxima microinstrução for atrasada em um ciclo. Este registrador é conhecido como registrador de pipeline. Muitas vezes a execução da próxima microinstrução depende do resultado da microinstrução atual, que não será estável até o final do microciclo atual. Pode-se ver que, de qualquer forma, todas as saídas do armazenamento de controle vão para um grande registrador. Historicamente, era possível comprar EPROMs com esses bits de registro no mesmo chip.
O sinal de clock determinando a taxa de clock, que é o tempo de ciclo do sistema, principalmente cronometra esse registrador.
Contenido relacionado
Foobar
Kevin Warwick
Canal de Agra