La magia de la división SRT es poder iterar sin tener que realizar propagación de acarreo sobre todos los bits del dividendo (y el resto parcial). Eso significa que puede alcanzar frecuencias más altas, que un divisor de precisión simple y doble puede usar el mismo reloj, o que puede conectar en cascada varios divisores SRT o usar radices más altos para calcular más de 1 bit por ciclo ...
En la no restauración, para decidir si necesita sumar o restar, debe completar la suma o resta anterior y determinar con precisión si el resultado es positivo o negativo. En SRT, solo necesita verificar algunos MSB (IIRC, alrededor de 2 para SRT radix 2, alrededor de 7-10 del resto y divisor para radix 4, combinando división y raíz cuadrada también es posible con una complejidad adicional moderada): El SRT el algoritmo solo necesita un resultado aproximado para decidir si se espera una suma, una resta o nada.
La adición y la resta para SRT se debe hacer usando los agregadores "carry-save" (o borrado-save, etc.) que no realizan la propagación de carry. Llevar la propagación y la conversión al formato de complemento a dos es realmente necesario solo para los pocos bits necesarios para la decisión SRT: + 1/0 / -1 para radix-2 o + 2 / + 1/0 / -1 / -2 para radix 4 , etc.
El resultado también se calcula sin propagación de acarreo manteniendo dos valores R = resultado y RM = R-1, agregando un bit a la derecha para cada ciclo:
- SRT = 0: R '= R & '0', RM '= RM & '1'
- SRT = +1: R '= R & '1', RM '= R & '0'
- SRT = -1: R '= R' & '1', RM '= R' & '0'