Bit slicing
Bit slicing é uma técnica para construção de um processador a partir de módulo de processadores com menor largura de bits, com o propósito de aumentar o comprimento da palavra de maquina; em teoria para fazer uma unidade central de processamento (CPU) com n bits. Cada um desses módulos componentes processa um bit field ou "slice" (fatia) de um operando. O processamento dos componentes agrupados teria então a capacidade de processar a largura de palavra de um certo design de software.
Bit slicing mais ou menos desapareceu devido ao surgimento de microprocessadores. Recentemente tem sido usado em unidades de lógica e aritmética (ALUs) para computadores quânticos e como uma técnica de software, por exemplo criptografia em CPUs x86.[1]
Detalhes operacionais
[editar | editar código-fonte]Processadores bit-slice (BSPs) comumente incluindo 1, 2, 4, 8 ou 16 bits unidades de lógica e aritmética (ALU) e linhas de controle (incluindo sinais de carry ou overflow que são internos ao processador em designs não bit-sliced de CPU.
Por exemplo, duas ALU de 4 bits poderiam ser arranjadas lado a lado, com linhas de controle entre elas, para formar uma ALU de 8 bits (resultado não precisa em potências de dois, por exemplo três unidades de 1 but podem fazer uma ALU de 3 bits[2], mesmo que uma CPU de 3 bits (ou n bits) enquanto 3 bits, ou qualquer CPU com um numero maior de números ímpar de bits, não tenha sido fabricada e vendida em volume. Quatro chips de ALU poderiam ser usando para construir ALUs de 16 bits, oito para construir uma ALU com palavra de 32 bits. Um projetista poderia adicionar quantos slices sejam necessários mara manipular palavras mais longas.
Um microsequenciador ou ROM de controle seria usada para executar lógica para prove sinais de controle para regular funções e componentes de ALUs.
Necessidade histórica
[editar | editar código-fonte]Bit slicing, apesar de não ser chamado assim na época, também foi usado em computadores antes de large-scale integrated circuits (LSI, é o predecessor do atual VLSI, ou very-large-scale integration circuits). A primeira máquina bit-sliced foi o EDSAC 2, construido no University of Cambridge Mathematical Laboratory entre 1956–1958. Antes do meio de 1970 e pelo final de 1980 houverem alguns debates sobre quão largo um bus era necessário para um certo computador para faze-lo funciona. A tecnologia de chips de silício e componentes eram muito mais caros do que hoje em dia. Usando múltiplas ALUs mais simples, portanto menos caras, era visto como uma forma de aumentar o poder de computação de forma com melhor custo-beneficio. Enquanto um microprocessador de 32 bits eram discutidos na época, poucos estavam em produção.
A série de mainframes UNIVAC 1100 (uma das mais antigas séries, originário da década de 1950) tem uma arquitetura de 36 bits, e a 1100/60 introduzida em 1979 usava nove chips ALUs Motorola MC10800 de 4 bits[3] para implementar a largura de palavra requerida enquanto usando circuitos integrados modernos.[4]
Na época processadores de 16 bits eram comuns mas caros, e os processadores de 8 bits, como o Z80, eram usados largamente no nascente mercado de computadores domésticos.
Combinando componentes para produzir produtos bit-sliced permitia a engenheiros e estudantes criarem computadores mais poderosos e complexos a um custo razoável, usando componentes de prateleira que poderiam ser configurados de forma personalizada. As complexidades de criar uma nova arquitetura de computadores eram grandemente reduzidas quando os detalhes da ALU já eram especificados (e debugados).
A principal vantagem era que bit slicing fez com que fosse economicamente possível em processadores menores o uso de transistores bipolares, que chaveiam muito mais rápido que transistores NMOS ou CMOS. Isso permitiu taxas de clock muito mais altas, onde a velocidade era necessária – por exemplo, para funções DSP ou matrizes de transformação – ou, no Xerox Alto, a combinação de flexibilidade e velocidade, antes que CPUs discretas fossem capazes de entrega-las.
Uso moderno
[editar | editar código-fonte]Uso em software em hardware não bit-slices
[editar | editar código-fonte]Em tempos mais recentes, o termo bit slicing foi reusado por Matthew Kwan[5] para se referir a técnica de usar uma CPU de propósitos gerais para implementar múltiplas máquinas virtuais paralelas simples usando instruções lógicas gerais para executar operações single instruction multiple-data (única instrução, múltiplos dados) (SIMD). Essa técnica é também conhecida como SIMD dentro de um registrador (SWAR).
Isso foi inicialmente em referencia ao artigo de Eli Biham de 1997 A Fast New DES Implementation in Software,[6] que atingiu ganhos significativos em performance de DES ao usar esse método.
Computadores quânticos Bit-sliced
[editar | editar código-fonte]Para simplificar a estrutura do circuito e reduzir custo de hardware de computadores quânticos (proposto para rodar a conjunto de instruções MIPS32) um 50 GHz superconducting "uma unidade lógico aritimética (ALU) de 4 bits bit-slice para rapid microprocessadores de 32-bit single-flux-quantum foi demonstrado".[7]
Ver também
[editar | editar código-fonte]Referências
- ↑ Benadjila, Ryad; Guo, Jian; Lomné, Victor; Peyrin, Thomas (21 de março de 2014). «Implementing Lightweight Block Ciphers on x86 Architectures». Cryptology Archive. Report 2013/445. Consultado em 28 de dezembro de 2019. Cópia arquivada em 17 de agosto de 2017 Parâmetro desconhecido
|orig-date=
ignorado (ajuda) - ↑ «How to Create a 1-bit ALU». www.cs.umd.edu. Cópia arquivada em 8 de maio de 2017.
[…] Here's how you would put three 1-bit ALU to create a 3-bit ALU […]
- ↑ Mueller, Dieter (2012). «The MC10800». 6502.org. Consultado em 5 de novembro de 2017. Cópia arquivada em 18 de julho de 2018
- ↑ «Computers Sperry Univac 1100/60 System» (PDF). Delran, NJ, USA: Datapro Research Corporation. January 1983. 70C-877-12. Consultado em 11 de outubro de 2021 Verifique data em:
|data=
(ajuda) - ↑ «Bitslice DES». darkside.com.au. Consultado em 5 de novembro de 2017
- ↑ Biham, Eli (1997). «A Fast New DES Implementation in Software». cs.technion.ac.il. Consultado em 5 de novembro de 2017
- ↑ Tang, Guang-Ming; Takata, Kensuke; Tanaka, Masamitsu; Fujimaki, Akira; Takagi, Kazuyoshi; Takagi, Naofumi (January 2016). «4-bit Bit-Slice Arithmetic Logic Unit for 32-bit RSFQ Microprocessors». IEEE Transactions on Applied Superconductivity. 26 (1). 2507125 páginas. Bibcode:2016ITAS...2607125T. doi:10.1109/TASC.2015.2507125. 1300106.
[…] 4-bit bit-slice arithmetic logic unit (ALU) for 32-bit rapid single-flux-quantum microprocessors was demonstrated. The proposed ALU covers all of the ALU operations for the MIPS32 instruction set. […] It consists of 3481 Josephson junctions with an area of 3.09 × 1.66 mm2. It achieved the target frequency of 50 GHz and a latency of 524 ps for a 32-bit operation, at the designed DC bias voltage of 2.5 mV […] Another 8-bit parallel ALU has been designed and fabricated with target processing frequency of 30 GHz […] To achieve comparable performance to CMOS parallel microprocessors operating at 2–3 GHz, 4-bit bit-slice processing should be performed with a clock frequency of several tens of gigahertz. Several bit-serial arithmetic circuits have been successfully demonstrated with high-speed clocks of above 50 GHz […]
Parâmetro desconhecido|orig-date=
ignorado (ajuda); Verifique data em:|data=
(ajuda)
Leitura adicional
[editar | editar código-fonte]- Mick, John; Brick, James (1980). Bit-Slice Microprocessor Design (PDF). [S.l.]: McGraw-Hill. ISBN 0-07-041781-4
Ligações externas
[editar | editar código-fonte]- «Untwisted: Bit-sliced TEA time». Cópia arquivada em 21 de outubro de 2013 – uma cartilha sobre bitslicing apresentado pedagogicamente uma implementação bitsliced do Tiny Encryption Algorithm (TEA), um block cipher