O sistema firmemente acoplado, classificado na categoria NUMA (Non-Uniform Memory Access) das máquinas SMP (Symmetric Multiprocessing), se caracteriza por uma arquitetura que, ao contrário dos sistemas UMA (Uniform Memory Access), divide a memória compartilhada entre os processadores. Em vez de um único espaço de memória compartilhado, como ocorre nos sistemas UMA, o sistema NUMA distribui a memória entre os processadores. Para entender de forma simples, pode-se imaginar um pedaço da memória compartilhada associado a cada processador do sistema, com uma interconexão global de alta velocidade ligando esses pedaços. Cada processador possui seu próprio barramento de memória local, conectado à sua fatia da memória principal, mas qualquer processador pode acessar qualquer local na memória compartilhada por meio da interconexão global. A diferença está no tempo necessário para realizar o acesso: os acessos locais são mais rápidos que os globais. Por isso, este sistema é descrito como uma máquina de acesso não uniforme à memória.

A principal vantagem desse modelo está na capacidade de distribuição dos acessos à memória. O gargalo da memória compartilhada, que antes estava na conexão única de memória, foi transferido para a interconexão global. Esse tipo de sistema funciona bem quando a maior parte dos acessos à memória é local, com apenas uma pequena porcentagem de acessos sendo realizados por meio da interconexão global. Na indústria, esse tipo de máquina tem sido frequentemente denominado "máquina de memória compartilhada distribuída". O sistema firmemente acoplado é, na prática, uma máquina de memória compartilhada distribuída projetada especificamente para o AS/400, onde o espaço único de endereços de memória real é distribuído por toda a máquina, com cada nó sendo atribuído a uma faixa do espaço de endereços real. Cada nó pode ser composto por um único processador ou por um processador com múltiplos núcleos. Como se trata de um sistema de memória compartilhada, qualquer software de aplicação ou sistema operacional que opere em um sistema de múltiplos núcleos funcionará da mesma maneira no sistema firmemente acoplado, sem necessidade de modificações.

Entretanto, a performance do sistema firmemente acoplado está diretamente ligada aos padrões de referência de memória. O acesso à memória local utiliza um endereço de memória real contido no mesmo nó, enquanto o acesso não-local se dá a um endereço de memória localizado em outro nó. Caso os padrões de referência de memória sejam distribuídos de forma aleatória entre os nós, a interconexão global se tornará o principal gargalo do sistema. Para evitar isso, é necessário gerenciar os padrões de referência para garantir que a maioria das referências seja local. No design do AS/400, o acesso não-local é projetado para ser aproximadamente quatro vezes mais lento que o acesso local, com a meta de que 90% das referências à memória sejam locais e apenas 10% sejam não-locais, de modo a garantir um bom desempenho do sistema.

A implementação inicial do sistema firmemente acoplado suporta até quatro nós de processadores de 8 núcleos, totalizando 32 processadores. Para esse sistema, foi escolhida uma interconexão global que suporta o protocolo SCIL:SM, com uma taxa de transferência de 1 gigabyte por segundo sobre um barramento de cobre. Há, no entanto, planos para substituir o meio de cobre por fibras ópticas paralelas. Cada nó de processador de 8 núcleos possui sua própria memória cache, de forma que o único tráfego na interconexão global se dá quando há falhas no cache, buscando dados em uma memória não-local.

O uso de processadores de alto desempenho, tanto em máquinas uniprocessadas (como as VLIW) quanto multiprocessadas (como as máquinas SMP), levanta questionamentos sobre sua necessidade conjunta. A razão para essa combinação de tecnologias é simples: enquanto os processadores uniprocessados oferecem um tempo de resposta rápido, as tecnologias SMP, sejam sistemas de múltiplos núcleos ou firmemente acoplados, são mais eficientes para aumentar o throughput do sistema. O objetivo é que o aumento no número de processadores permita a execução de mais tarefas ou o suporte a mais usuários simultâneos, sem reduzir, contudo, o tempo de resposta para usuários individuais. Assim, o AS/400 continuará a adotar tanto a tecnologia SMP para maior throughput quanto processadores uniprocessados mais rápidos para garantir respostas rápidas. A combinação dessas duas tecnologias promete criar sistemas impressionantes.

A evolução do AS/400 não se limita apenas ao aprimoramento de seus processadores. O desempenho dos processadores de alto desempenho é irrelevante se não houver uma infraestrutura de entrada e saída (I/O) capaz de fornecer dados suficientes para mantê-los ocupados. Em termos de I/O, espera-se que a tecnologia de dispositivos de I/O evolua consideravelmente, com a introdução de barramentos PCI e a integração de novos dispositivos de alta performance, como discos e redes ATM (Asynchronous Transfer Mode), que prometem velocidades até mil vezes superiores às atuais.

Embora os dispositivos de I/O, como os discos, estejam se tornando mais rápidos, a tecnologia de discos rígidos tradicionais não tem conseguido acompanhar o ritmo de aumento da velocidade dos processadores. A principal limitação dessas unidades, por serem dispositivos mecânicos, dificulta o aumento da sua velocidade de forma significativa. No futuro, a evolução das unidades de disco será crucial para garantir que os processadores possam operar em sua capacidade máxima, sem que a capacidade de I/O seja um gargalo para o desempenho global do sistema.

Como a Arquitetura PowerPC foi Adaptada para Atender ao AS/400 e seus Desafios Técnicos

Após várias visitas a Armonk, Jack Kuehler finalmente se convenceu: os especialistas de Rochester realmente dominavam a construção de processadores comerciais, distintos daqueles utilizados em computação técnica. Kuehler autorizou um último esforço, com prazo de 90 dias, para responder a duas perguntas cruciais: quais alterações seriam necessárias na arquitetura PowerPC 32 para torná-la adequada ao AS/400 e qual seria o custo da migração para essa nova arquitetura. Essa decisão abriu caminho para influenciar diretamente o design do PowerPC, com Kuehler disposto a financiar os custos adicionais dessa transição.

A partir de abril de 1991, uma equipe liderada por mim, composta por dez profissionais de Rochester, trabalhou em estreita colaboração com o chefe de Pesquisa da IBM e os arquitetos do PowerPC, além dos projetistas em Austin, responsáveis pelo design dos processadores. O sucesso dessa empreitada dependia da alta competência técnica do grupo, pois os requisitos do AS/400 contrastavam com os objetivos originais do PowerPC. Além disso, havia o receio de que a convergência das arquiteturas pudesse comprometer a capacidade de Rochester em produzir processadores otimizados para aplicações comerciais.

Decidimos partir da arquitetura PowerPC definida na época, incorporando as extensões necessárias para o AS/400, criando assim a arquitetura estendida denominada Amazon. Essa denominação diferenciava claramente a arquitetura base do PowerPC das modificações específicas do AS/400. Apesar de divergências internas quanto à conveniência de uma arquitetura RISC comum, avançamos rapidamente, com Andy Wottreng e Mike Corrigan assumindo a responsabilidade técnica pela integração dos requisitos do AS/400, resultando na primeira arquitetura RISC da indústria apta tanto para aplicações comerciais quanto técnicas.

Darryl Solie desempenhou papel fundamental na coordenação dos projetos de processadores entre Austin e Rochester, garantindo a cooperação essencial. A troca de conhecimento entre os times levou a ganhos significativos de desempenho, tornando Rochester um centro de excelência na fabricação de processadores de alta performance. Em momentos de tensão, Bill Berg atuava como moderador, reafirmando a convicção de que éramos os únicos capazes de realizar essa convergência arquitetural, e posteriormente influenciou a adoção de programação orientada a objetos para o novo sistema operacional.

A arquitetura PowerPC foi projetada para operar em modos de 32 e 64 bits, com todas as versões de 64 bits incorporando o subconjunto de 32 bits praticamente sem alterações. Concentramos esforços nas extensões para o modo de 64 bits, pois os processadores para a linha AS/400 exigiam capacidades para manipular grandes volumes de dados e barramentos de dados muito amplos. As primeiras versões do PowerPC, como 601, 603 e 604, suportavam apenas o modo 32 bits e não eram passíveis de extensões para atender a essas necessidades. O projeto do PowerPC 620, embora 64 bits, não era suficientemente denso para as demandas do AS/400 de ponta, o que exigiria a construção de uma versão multi-chip da arquitetura.

Paralelamente, os desenvolvedores do RS/6000 também enfrentaram limitações nos processadores PowerPC iniciais para suas linhas de alta performance, optando por criar extensões específicas para computação numérica intensiva, denominadas POWER2. O POWER2 introduziu múltiplos pipelines e novas instruções computacionais, e estreou em 1993. Essa arquitetura foi fundamental para o RS/6000 Scalable POWERparallel System, que suportava até 512 processadores em paralelo, ideal para aplicações científicas e comerciais que exigem processamento de grandes bancos de dados.

Tanto os arquitetos do AS/400 quanto os do RS/6000 buscaram inicialmente uma arquitetura comum, integrando na arquitetura Amazon todas as extensões necessárias para ambos os sistemas. A ideia era possibilitar futuramente um único processador capaz de suportar as exigências específicas de cada linha. O primeiro processador comum planejado recebeu múltiplas denominações: POWER3 para o RS/6000, PowerPC 630 internamente conhecido como Belatrix, nome de uma estrela na constelação de Órion, também chamada Amazon Star, símbolo do projeto.

Belatrix, projetado com apoio da IBM Research, visava uma microarquitetura RISC ultra-performática operando entre 300 e 400 MHz, com potencial para multiplicar por cinco a dez vezes a performance dos designs anteriores — um verdadeiro supercomputador em um único chip. Todavia, o projeto revelou-se excessivamente ambicioso e foi abandonado. Decidiu-se então que seria mais sensato desenvolver versões distintas do PowerPC, cada uma otimizada para seu ambiente específico, mantendo um conjunto base de instruções comuns e permitindo extensões opcionais.

O entendimento profundo da complexidade de arquiteturas convergentes, a necessidade de compromissos técnicos e econômicos, além da colaboração multidisciplinar, foram decisivos para que Rochester se tornasse referência na criação de processadores comerciais de alto desempenho, mantendo, contudo, a flexibilidade para adaptar as soluções às especificidades do AS/400 e do RS/6000. Essa história revela não só a engenhosidade técnica, mas também a capacidade de negociação, gestão e visão estratégica que moldaram um dos avanços mais significativos da computação da época.

Além do desenvolvimento técnico, é essencial compreender a importância do alinhamento entre objetivos de negócio e avanços tecnológicos. A adaptação da arquitetura PowerPC para o AS/400 não foi apenas um desafio técnico, mas também um exercício de visão de futuro, onde o investimento em inovação e a integração colaborativa foram fundamentais para o sucesso. A evolução do PowerPC exemplifica como a flexibilidade arquitetural, aliada a uma governança eficaz e um time técnico de alto nível, pode superar as barreiras impostas por requisitos contraditórios e abrir caminho para soluções robustas e escaláveis.