Nothing Special   »   [go: up one dir, main page]

RU2638724C1 - Устройство для коррекции порядка при нормализации чисел - Google Patents

Устройство для коррекции порядка при нормализации чисел Download PDF

Info

Publication number
RU2638724C1
RU2638724C1 RU2017104392A RU2017104392A RU2638724C1 RU 2638724 C1 RU2638724 C1 RU 2638724C1 RU 2017104392 A RU2017104392 A RU 2017104392A RU 2017104392 A RU2017104392 A RU 2017104392A RU 2638724 C1 RU2638724 C1 RU 2638724C1
Authority
RU
Russia
Prior art keywords
input
elements
block
output
inputs
Prior art date
Application number
RU2017104392A
Other languages
English (en)
Inventor
Игорь Михайлович Ядыкин
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ)
Priority to RU2017104392A priority Critical patent/RU2638724C1/ru
Application granted granted Critical
Publication of RU2638724C1 publication Critical patent/RU2638724C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Изобретение относится к области вычислительной техники, в частности к устройствам обработки данных, и может быть использовано для построения средств автоматики и функциональных узлов систем управления, а также в устройствах обработки чисел с плавающей запятой при нормализации данных. Техническим результатом является уменьшение аппаратных затрат, увеличение быстродействия устройства, обеспечение возможности определения старших нулевых разрядов для двоичных чисел со знаком, а также упрощение увеличения разрядности входных данных. Устройство содержит (М + 1) каскадов блоков пирамидальной структуры, выходной блок, входной блок управляемой инверсии, группу элементов И, при этом в 1-м каскаде каждый блок содержит преобразователь в двухразрядный двоичный код, двухразрядный коммутатор, модуль проверки полубайтов, первый модуль указателя младшего нуля, двухразрядный двоичный шифратор, а каждый блок со второго по (М + 1)-го каскада содержит второй модуль указателя младшего нуля и двухразрядный двоичный шифратор. 2 ил., 4 табл.

Description

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к области вычислительной техники, в частности к устройствам обработки данных, и может быть использовано для построения средств автоматики и функциональных узлов систем управления, а также в устройствах обработки чисел с плавающей запятой при нормализации данных.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
При выполнении операций в арифметико-логических устройствах с числами с плавающей запятой результаты операций могут быть представлены в ненормализованном виде. Для сохранения данных в формате с плавающей запятой и для дальнейшей обработки проводится нормализация данных. Для нормализации чисел определяется количество старших нулевых (незначащих) разрядов в зависимости от знака числа, представленного в дополнительном или обратном коде. На величину нулевых разрядов проводится коррекция (декремент) порядка числа и осуществляется сдвиг данных перед записью значения в мантиссу числа.
В соответствии со стандартом IEEE754-2008 для операций с плавающей запятой установлены форматы одинарной (32-разрядные), двойной (64 разрядные) и учетверенной (128-разрядные) точности. Для выполнения постбинарных вычислений требуется увеличение разрядности мантиссы, вводится 256-разрядный формат (октоточность) (например, при выполнении операций умножения, возведения в степень). При этом разрядность результатов операций составляет более 200 разрядов.
Известно устройство для определения количества единиц (нулей) в двоичном числе (RU №2446442, МПК G06F 7/50, Н03K 21/00, заявлено 11.04.2011, опубликовано 27.03.2012, Бюл. №9), содержащее блок управляемой инверсии, состоящий из n-элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ» (n - количество разрядов входного числа), элементы ИЛИ и модули, состоящие из элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и элемента И, которые объединены в группы, состоящие из ярусов, и объединены в k-каскадов (k=]log2n[), так, что каждый i-й каскад содержит g(i) = n/2i групп (i = 1, …, k), каждая группа i-го каскада разделена на j ярусов (j = 1 ,…, i), при этом первый ярус каждой группы i-го каскада содержит i модулей, а каждый j-й ярус каждой группы i-го каскада (j = 2, …, i,) содержит (i-j) модулей и элемент «ИЛИ».
Недостатком данного устройства является определение количества единиц (нулей) в двоичном числе, а не старших единиц (нулей).
К причинам, препятствующим достижению указанного ниже технического результата, относится отсутствие средств для формирования кода числа старших единиц (нулей) в двоичном числе.
Известно устройство для определения количества единиц в упорядоченном двоичном числе (RU №2522875, МПК Н03K 21/12, заявлено 24.05.2012, опубликовано 20.07.2014, Бюл. №20), содержащее буферы с тремя состояниями с прямым и инверсным входами разрешения, n разрядов входного двоичного числа, (k + 1) разрядов выходного двоичного кода (k=[log2n] меньшее целое), причем буферы с тремя состояниями объединены в пирамидальную структуру, состоящую из (m-1) ступеней (m=]log2n[ большее целое), и в выходной блок, содержащий к буферов с тремя состояниями с инверсным входом разрешения и к буферов с тремя состояниями с прямым входом разрешения, при этом каждая i-я ступень (i = 1,…, (m-1)) содержит 2i-1 буферов с тремя состояниями с инверсным входом разрешения и 2i-1 буферов с тремя состояниями с прямым входом разрешения.
Недостатком данного устройства является определение количества единиц в упорядоченном двоичном числе, а не старших единиц (нулей) в произвольном двоичном числе со знаком.
К причинам, препятствующим достижению указанного ниже технического результата, относится отсутствие средств для формирования кода числа старших единиц (нулей) в двоичном числе.
Известны способ и устройство для определения количества старших нулей (Optimized method and apparatus for parallel leading zero/one detection US 6697828 B1, МПК G06F 7/00, G06F 7/74, заявлено 01.06.2000, опубликовано 24.02.2004), в котором 32-разрядные входные данные разбиваются на четырехразрядные полубайты для которых параллельно вычисляется количество нулевых разрядов. Устройство содержит анализаторы полубайтов, которые вычисляют трехразрядный двоичный код для каждого полубайта, пирамидальную структуру двухвходовых мультиплексоров, содержащую три каскада, и группу элементов И для формирования сигналов управления входами выборки мультиплексорами.
Недостатками данного устройства являются большие аппаратные затраты и низкое быстродействие, так как при увеличении разрядности входных данных увеличивается количество последовательно включенных каскадов мультиплексоров, а также отсутствие средств для определения старших нулей в зависимости от знака числа.
Наиболее близким устройством того же назначения к заявленному изобретению по совокупности признаков является, принятое за прототип, устройство для подсчета количества незначащих нулей (Redundancy-free circuits for zero counters US 8180815 B2, МПК G06F 15/00, G06F 3/00, G06F 7/74, заявлено 12.08.2008, опубликовано 15.05.2012), в котором генерируется трехразрядный код соответствующий количеству старших незначащих нулей для четырехразрядных полубайтов входных данных. Устройство реализовано как 16-битовый двоичный счетчик, состоящий из четырех 4-х битовых декодеров преобразования в трехразрядный код, выходы двух младших бит которых объединены на четырех двухразрядных мультиплексорах, пятый 4-х битовый декодер преобразует в двухразрядный код, соответствующий номеру полубайта, старшие разряды соответствующие сгенерированным трехразрядным кодам, когда все входные биты входных полубайт равны нулю, а также содержит выходной блок, который состоит из четырех элементов 2И-2ИЛИ, для объединения с выходами младшего 16-битового двоичного счетчика нулей.
Недостатками данного устройства являются большие аппаратные затраты и низкое быстродействие, так как для управления мультиплексорами и для формирования номера полубайтов применяются отдельные схемы, при увеличении разрядности входных данных увеличивается количество последовательно включенных каскадов выходных блоков, а также отсутствие средств для определения старших нулей в зависимости от знака числа.
ЗАДАЧА ИЗОБРЕТЕНИЯ
Задачей изобретения является разработка устройства для определения старших нулей в многоразрядных входных данных со знаком, заданных в дополнительном или обратном коде.
Техническим результатом изобретения является уменьшение аппаратных затрат, увеличение быстродействия устройства, расширение функциональных возможностей в части возможности определения старших нулевых разрядов для двоичных чисел со знаком, а также упрощение увеличения разрядности входных данных.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Указанный технический результат при осуществлении изобретения достигается тем, что в устройство для коррекции порядка при нормализации чисел содержащее
вход знака Sign и N разрядов D1, D2, …, DN входного двоичного числа (D1 - старший разряд, DN - младший разряд), N разрядов X1, Х2, …, XN внутренней шины, (K + 1) разрядов В0, В1, …, BK выходного двоичного кода (K=[log2N] меньшее целое, В0 - младший разряд, ВК - старший разряд), (М + 1) каскадов блоков пирамидальной структуры (М=]log4(N/16)[ (большее целое)), при этом каждый i-й каскад (i = 1, …, (М+1)) содержит ]N/16/4(i-1)[ блоков, выходной блок 4, состоящий из (К-2) элементов ИЛИ, входной блок 5 управляемой инверсии, состоящий из N-элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ», группу из L элементов И 61, 62, …, 6L (L количество блоков 1-го каскада, где L=]N/16[ (большее целое)),
при этом в 1-ом каскаде каждый блок содержит
преобразователь в двухразрядный двоичный код 7, состоящий из четырех групп, каждая из которых содержит первый элемент 2И с инверсным входом, второй элемент 2И, элемент 2ИЛИ и третий элемент 2И,
двухразрядный коммутатор 8, состоящий из двух элементов 2И-2И-2И-2И-4ИЛИ, модуль проверки полубайтов 9, состоящий из четырех элементов 4И, первый модуль указателя младшего нуля 10, состоящий из четырех элементов И с одним инверсным входом и пятого элемента 4И,
двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ, при этом каждый блок второго, третьего, …, (М+1)-го каскадов содержит второй модуль указателя младшего нуля 12, состоящий из трех элементов И с одним инверсным входом и четвертый элемент 4И, и двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ,
причем N разрядов D1, D2, …, DN входного двоичного числа соединены с первыми входами соответствующих одноименных элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ» входного блока 5, вторые входы которых подключены к входу знака Sign двоичного числа, а выходы элементов входного блока 5 являются соответствующими N разрядами X1, Х2, …, XN внутренней шины (при этом X1 - младший разряд, XN - старший разряд),
входами каждого j-го блока 1-го каскада (j = 1, 2, …, L) являются 16 разрядов внутренней шины X, с (1+16(j-l))-го по (16+16(j-1))-й разряды, разделенные на четыре группы полубайт по четыре разряда каждая, причем все полубайты шины X нумеруются, начиная с младших разрядов,
в каждом j-м блоке 1-го каскада в каждой группе преобразователя 7 младший первый разряд входа соответствующего полубайта соединен с первым входом первого элемента 2И с инверсным входом, первым входом второго элемента 2И и первым входом третьего элемента 2И, второй разряд входа полубайта соединен со вторым инверсным входом первого элемента 2И и вторым входом третьего элемента 2И, а третий разряд входа полубайта соединен со вторым входом второго элемента 2И, при этом выходы первого элемента 2И с инверсным входом и второго элемента 2И соединены с входами элемента 2ИЛИ, выход g0 которого является первым выходом каждой группы преобразователя 7, а выход g1 третьего элемента 2И является вторым выходом каждой группы преобразователя 7,
а также в каждом j-м блоке 1-го каскада четыре разряда входа каждого полубайта соединены с четырьмя входами соответствующего элемента 4И модуля проверки полубайтов 9, причем выход g2_0 первого элемента 4И модуля проверки полубайтов 9 соединен со вторым инверсным входом первого элемента И, вторыми входами второго, третьего и четвертого элементов И и первым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_1 второго элемента 4И модуля проверки полубайтов 9 соединен с третьим инверсным входом второго элемента И, третьими входами третьего и четвертого элементов И и вторым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_2 третьего элемента 4И модуля проверки полубайтов 9 соединен с четвертым инверсным входом третьего элемента И, четвертым входом четвертого элементов И и третьим входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_3 четвертого элемента 4И модуля проверки полубайтов 9 соединен с пятым инверсным входом четвертого элемента И и четвертым входом пятого элементов И первого модуля указателя младшего нуля 10, причем первые входы первого, второго, третьего и четвертого элементов И первого модуля указателя младшего нуля 10 соединены с входом переноса блока CI «все единицы» j-го блока, а выход пятого элемента И первого модуля указателя младшего нуля 10 является выходом переноса блока СО «все единицы» j-го блока,
в каждом j-м блоке 1-го каскада первые выходы g0 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И первого элемента 2И-2И-2И-2И-4ИЛИ, а вторые выходы g1 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И второго элемента 2И-2И-2И-2И-4ИЛИ, при этом вторые входы соответствующих одноименных элементов 2И первого и второго элементов 2И-2И-2И-2И-4ИЛИ соединены между собой и подключены к соответствующим выходам u_0, u_1, u_2, u_3 с первого по четвертый элементы И с инверсным входом первого модуля указателя младшего нуля 10, а также выходы второго u_1 и третьего u_2 элементов И с инверсным входом модуля указателя младшего нуля 10, соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом u_3 четвертого элемента И с инверсным входом модуля указателя младшего нуля 10,
выходы первого b0 и второго b1 элементов 2И-2И-2И-2И-4ИЛИ двухразрядного коммутатора 8 и выходы первого b2 и второго b3 элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым, вторым, третьим и четвертым выходами каждого j-го блока 1-го каскада,
в группе из L элементов И 61, 62, …, 6L первые входы j-го элемента И 6j (j = 1, 2, …, L) соединены с выходом переноса СО «все единицы» j-го блока, а выходы элементов И, начиная с первого 61 до предпоследнего 6L-1 элементов, соединены с соответствующими входами переноса CI «все единицы» блоков, начиная со второго l2 до последнего 1L блока, вторые входы (1+4*Z)-го, (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов из группы из L элементов И 61, 62,…, 6L (Z = 0, 1, …, (L/4-1)) подключены к входу переноса CI «все единицы» (1+4*Z)-го блока, третьи входы (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (1+4*Z)-го блока, четвертые входы (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (2+4*Z)-го блока, пятый вход (4+4*Z)-го элемента И подключен к входу переноса CI «все единицы» (3+4*Z)-го блока, кроме того, вход переноса CI «все единицы» первого блока l1 соединен с логической единицей,
в каждом v-ом блоке i-го каскада, начиная со второго каскада 2 до (М + 1)-го каскада (i=2, …, (М + 1), v = 1, …, N/16/4(i-1)), выход переноса СО «все единицы» (1+4(v-1)) блока (i-1)-го каскада соединен с первыми входами первого, второго и третьего элементов И с инверсным входом и первым входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО «все единицы» (2+4(v-1)) блока (i-1)-го каскада соединен со вторым инверсным входом первого элемента И с инверсным входом и вторыми входами второго и третьего элементов И с инверсным входом и вторым входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО ««все единицы» (3+4(v-1)) блока (i-1)-го каскада соединен с третьим инверсным входом второго элемента И с инверсным входом, третьим входом третьего элемента И с инверсным входом и третьим входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО «все единицы» (4+4(v-1)) блока (i-1)-го каскада соединен со четвертым инверсным входом третьего элемента И с инверсным входом и четвертым входом четвертого элемента И второго указателя младшего нуля 12, а также выходы первого и второго элементов И с инверсным входом второго указателя младшего нуля 12 соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом третьего элемента И с инверсным входом второго указателя младшего нуля 12, при этом выход четвертого элемента И второго модуля указателя младшего нуля 12 является выходом переноса СО «все единицы» каждого v-го блока, а выходы первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым и вторым, выходами каждого v-го блока,
первый b0, второй b1, третий b2 и четвертый b3 выходы всех L блоков первого каскада 1 соединены с соответствующими входами одноименных элементов ИЛИ выходного блока 4, первый и второй выходы всех блоков в i-м каскаде (i=2, …, М) соединены с соответствующими входами соответственно (2i + 1)-го и (2i + 2)-го элементов ИЛИ выходного блока 4,
выходы (К-2) элементов ИЛИ выходного блока 4, первый и второй выходы блока последнего (М + 1)-го каскада и выход последнего элемента 6L из группы из L элементов И являются соответственно (K + 1) разрядами В0, В1, …, BK выходного двоичного кода.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг. 1 представлена схема предлагаемого устройства для коррекции порядка при нормализации чисел при N=256. На фиг. 2 представлены формат данных шины X и схема формирования значений разрядов выходного кода В при N=256.
На фиг. 1 приняты следующие обозначения:
D1, D2, …, D256 (DN) - N разрядов входного двоичного числа (при N=256),
Sign - знак входного числа,
X1, Х2, …, Х256 (XN) - N разрядов внутренней шины,
В0, В1, …, В8 (BK + 1) - (K + 1) разрядов выходного двоичного кода (при К=8) (K=[log2N] меньшее целое),
CI - вход переноса блока «все единицы»,
СО - выход переноса блока «все единицы»,
L - количество блоков 1-го каскада, где L=]N/16[ (большее целое), L=16 при N=256,
(М + 1) - количество каскадов (М=]log4(N/16)[ (большее целое)), (М + 1) = 3 при N=256),
g2, g1, g0 - трехразрядный двоичный код соответствующий количеству единиц в полубайте (g0 - младший разряд),
u_3, u_2, u_1, u_0 - выходы модуля указателя младшего нуля в унитарном коде,
b1, b0 - младшие разряды количества единиц в полубайте,
b3, b2 - разряды номера полубайта внутри каждого блока первого каскада,
b5, b4 - разряды указывающие номер блока 1 в группах из четырех блоков 1 первого каскада,
l1, l2, …, l16 (L) - блоки первого каскада,
21, 22, 23, 24 - блоки второго каскада,
31 - блок третьего каскада,
4 - выходной блок содержащий (К-2) элементов ИЛИ,
5 - входной блок управляемой инверсии, состоящий из N-элементов
«ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ» (XNOR),
61, 62,…, 616 (L) - группа из L элементов И,
7 - преобразователь в двухразрядный двоичный код, содержащий четыре группы,
каждая из которых состоит из первого элемента 2И с инверсным входом,
второго элемента 2И, элемента 2ИЛИ и третьего элемента 2И,
8 - двухразрядный коммутатор, состоящий из двух элементов 2И-2И-2И-2И-4ИЛИ,
9 - модуль проверки полубайтов, содержащий четыре элемента 4И,
10 - первый модуль указателя младшего нуля, содержащий четыре элемента И с
одним инверсным входом и пятый элемент 4И,
11 - двухразрядный двоичный шифратор, содержащий два элемента 2ИЛИ,
12 - второй модуль указателя младшего нуля, содержащий три элемента И с одним
инверсным входом и четвертый элемент 4И.
Предлагаемое устройство содержит вход знака Sign и N разрядов D1, D2, …, DN входного двоичного числа (D1 - старший разряд, DN - младший разряд), N разрядов X1, Х2, …, XN внутренней шины, (K + 1) разрядов В0, В1, …, BK выходного двоичного кода (K=[log2N] меньшее целое, В0 - младший разряд, ВК - старший разряд), (М + 1) каскадов блоков пирамидальной структуры (М=]log4(N/16)[ (большее целое)), при этом каждый i-й каскад (i=1, …, (М+1)) содержит ]N/16/4(i-1)[ блоков, выходной блок 4, состоящий из (К-2) элементов ИЛИ, входной блок 5 управляемой инверсии, состоящий из N-элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ», группу из L элементов И 61, 62, …, 6L (L количество блоков 1-го каскада, где L=]N/16[ (большее целое)).
При этом в 1-ом каскаде каждый блок содержит преобразователь в двухразрядный двоичный код 7, состоящий из четырех групп, каждая из которых содержит первый элемент 2И с инверсным входом, второй элемент 2И, элемент 2ИЛИ и третий элемент 2И, двухразрядный коммутатор 8, состоящий из двух элементов 2И-2И-2И-2И-4ИЛИ, модуль проверки полубайтов 9, состоящий из четырех элементов 4И, первый модуль указателя младшего нуля 10, состоящий из четырех элементов И с одним инверсным входом и пятого элемента 4И, двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ.
При этом каждый блок второго, третьего, (М + 1)-го каскадов содержит второй модуль указателя младшего нуля 12, состоящий из трех элементов И с одним инверсным входом и четвертый элемент 4И, и двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ.
Причем N разрядов D1, D2, …, DN входного двоичного числа соединены с первыми входами соответствующих одноименных элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ» входного блока 5, вторые входы которых подключены к входу знака Sign двоичного числа, а выходы элементов входного блока 5 являются соответствующими N разрядами X1, Х2, …, XN внутренней шины (при этом X1 - младший разряд, XN - старший разряд).
Входами каждого j-го блока 1-го каскада (j=1, 2, …, L) являются 16 разрядов внутренней шины X, с (1+16(j-1))-го по (16+16(j-1))-й разряды, разделенные на четыре группы полубайт по четыре разряда каждая, причем все полубайты шины X нумеруются, начиная с младших разрядов.
В каждом j-м блоке 1-го каскада в каждой группе преобразователя 7 младший первый разряд входа соответствующего полубайта соединен с первым входом первого элемента 2И с инверсным входом, первым входом второго элемента 2И и первым входом третьего элемента 2И, второй разряд входа полубайта соединен со вторым инверсным входом первого элемента 2И и вторым входом третьего элемента 2И, а третий разряд входа полубайта соединен со вторым входом второго элемента 2И, при этом выходы первого элемента 2И с инверсным входом и второго элемента 2И соединены с входами элемента 2ИЛИ, выход g0 которого является первым выходом каждой группы преобразователя 7 соответствующим нечетному количеству единиц в полубайте, а выход g1 третьего элемента 2И является вторым выходом каждой группы преобразователя 7 соответствующим двум старшим единицам в полубайте.
Также в каждом j-м блоке 1-го каскада четыре разряда входа каждого полубайта соединены с четырьмя входами соответствующего элемента 4И модуля проверки полубайтов 9, при этом выход g2_0 первого элемента 4И соответствует значению четырех единиц в нулевом полубайте, выход g2_l второго элемента 4И - в первом полубайте, выход g2_2 третьего элемента 4И - во втором полубайте, а выход g2_3 четвертого элемента 4И - в третьем полубайте. Причем выход g2_0 первого элемента 4И модуля проверки полубайтов 9 соединен со вторым инверсным входом первого элемента И, вторыми входами второго, третьего и четвертого элементов И и первым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_1 второго элемента 4И модуля проверки полубайтов 9 соединен с третьим инверсным входом второго элемента И, третьими входами третьего и четвертого элементов И и вторым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_2 третьего элемента 4И модуля проверки полубайтов 9 соединен с четвертым инверсным входом третьего элемента И, четвертым входом четвертого элементов И и третьим входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_3 четвертого элемента 4И модуля проверки полубайтов 9 соединен с пятым инверсным входом четвертого элемента И и четвертым входом пятого элементов И первого модуля указателя младшего нуля 10. Причем первые входы первого, второго, третьего и четвертого элементов И первого модуля указателя младшего нуля 10 соединены с входом переноса блока CI «все единицы» j-го блока, а выход пятого элемента И первого модуля указателя младшего нуля 10 является выходом переноса блока СО «все единицы» j-го блока.
В каждом j-м блоке 1-го каскада первые выходы g0 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И первого элемента 2И-2И-2И-2И-4ИЛИ, а вторые выходы g1 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И второго элемента 2И-2И-2И-2И-4ИЛИ. При этом вторые входы соответствующих одноименных элементов 2И первого и второго элементов 2И-2И-2И-2И-4ИЛИ соединены между собой и подключены к соответствующим выходам u_0, u_1, u_2, u_3 с первого по четвертый элементы И с инверсным входом первого модуля указателя младшего нуля 10, а также выходы второго u_1 и третьего u_2 элементов И с инверсным входом модуля указателя младшего нуля 10, соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом u_3 четвертого элемента И с инверсным входом модуля указателя младшего нуля 10.
Выходы первого b0 и второго b1 элементов 2И-2И-2И-2И-4ИЛИ двухразрядного коммутатора 8 и выходы первого b2 и второго b3 элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым, вторым, третьим и четвертым выходами каждого j-го блока 1-го каскада.
В группе из L элементов И 61, 62, …, 6L первые входы j-го элемента И 6j (j = 1, 2, …, L) соединены с выходом переноса СО «все единицы» j-го блока, а выходы элементов И, начиная с первого 61 до предпоследнего 6L-1 элементов, соединены с соответствующими входами переноса CI «все единицы» блоков, начиная со второго l2 до последнего lL блока, вторые входы (1+4*Z)-го, (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов из группы из L элементов И 61, 62, …, 6L (Z = 0, 1, …, (L/4-1)) подключены к входу переноса CI «все единицы» (1+4*Z)-го блока, третьи входы (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (1+4*Z)-го блока, четвертые входы (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (2+4*Z)-го блока, пятый вход (4+4*Z)-го элемента И подключен к входу переноса CI «все единицы» (3+4*Z)-го блока, кроме того, вход переноса CI «все единицы» первого блока l1 соединен с логической единицей.
В каждом v-м блоке i-го каскада, начиная со второго каскада 2 до (М + 1)-го каскада (i=2, …, (М + 1), v=1, …, N/16/4(i-1)), выход переноса СО «все единицы» (1+4(v-1)) блока (i-1)-го каскада соединен с первыми входами первого, второго и третьего элементов И с инверсным входом и первым входом четвертого элемента И второго указателя младшего нуля 12. Выход переноса СО «все единицы» (2+4(v-1)) блока (i-1)-го каскада соединен со вторым инверсным входом первого элемента И с инверсным входом и вторыми входами второго и третьего элементов И с инверсным входом и вторым входом четвертого элемента И второго указателя младшего нуля 12. Выход переноса СО ««все единицы» (3+4(v-1)) блока (i-1)-го каскада соединен с третьим инверсным входом второго элемента И с инверсным входом, третьим входом третьего элемента И с инверсным входом и третьим входом четвертого элемента И второго указателя младшего нуля 12. Выход переноса СО «все единицы» (4+4(v-1)) блока (i-1)-го каскада соединен со четвертым инверсным входом третьего элемента И с инверсным входом и четвертым входом четвертого элемента И второго указателя младшего нуля 12, а также выходы первого и второго элементов И с инверсным входом второго указателя младшего нуля 12 соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом третьего элемента И с инверсным входом второго указателя младшего нуля 12. При этом выход четвертого элемента И второго модуля указателя младшего нуля 12 является выходом переноса СО «все единицы» каждого v-го блока, а выходы первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым и вторым, выходами каждого v-го блока.
Первый b0, второй b1, третий b2 и четвертый b3 выходы всех L блоков первого каскада 1 соединены с соответствующими входами одноименных элементов ИЛИ выходного блока 4, первый и второй выходы всех блоков в i-м каскаде (i=2, …, М) соединены с соответствующими входами соответственно (2i + 1)-го и (2i + 2)-го элементов ИЛИ выходного блока 4.
Выходы (К-2) элементов ИЛИ выходного блока 4, первый и второй выходы блока последнего (М + 1)-го каскада и выход последнего элемента 6L из группы из L элементов И являются соответственно (K + 1) разрядами В0, В1, …, BK выходного двоичного кода.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Предлагаемое устройство для коррекции порядка при нормализации чисел работает следующим образом.
На входы устройства поступает N разрядов входного двоичного числа D1, …, D256 (DN) и знак числа Sign, представленные в дополнительном или обратном коде. Для положительных чисел значение знака Sign = 0, а для отрицательных Sign = 1. Младший разряд D1 является старшим разрядом входного двоичного числа.
Во входном блоке управляемой инверсии 5 разряды входного числа D1, …, D16 (Dn) не изменяются для отрицательных чисел при значении знака Sign = l, или все разряды инвертируются для положительных чисел при значении знака Sign = 0. Таким образом в младших разрядах на внутренней шине X1, Х2, …, Х256 (XN) (при этом X1 - младший разряд, XN - старший разряд) будут сформированы единичные значения, соответствующие старшим нулевым (незначащим) разрядам во входном двоичном числе в зависимости от знака числа Sign.
Далее определяется количество единиц в младших разрядах шины X.
Для определения количества единиц разряды внутренней шины X делятся на группы по четыре разряда соответствующие полубайтам числа, начиная с младшего разряда X1. Для каждого полубайта четыре входных разряда одновременно параллельно преобразуются в трехразрядный двоичный код g2, g1, g0 (g0 - младший разряд) соответствующий количеству единиц в полубайте. Пример таблицы истинности для преобразования разрядов Х4, Х3, Х2, X1 младшего нулевого полубайта в двоичный код g2_0, g1_0, g0_0 приведен в таблице 1. На основе таблицы 1 составлена сокращенная таблица истинности (таблица 2) для формирования трехразрядного двоичного кода, в которой введено обозначение X - любое значение. Для минимизации схемы учитывается, что при всех единичных значениях на входах Х4, ХЗ, Х2, XI (нижняя строка в таблице 2) формируется старший третий бит g2_0 = 1, при котором на выход блока не передаются значения двух младших бит g1_0, g0_0. На основе таблицы 2 для разрядов двоичного кода получены следующие выражения:
g0_0 = X1 and not Х2 or X1 and Х3,
g1_0 = X1 and X2,
g2_0 = X1 and X2 and X3 and X4.
Единичное значение разряда g0_0 указывает на нечетное количество единиц (одна единица в младшем разряде X1 или три единицы в разрядах X1, Х2 и Х3), единичное значение разряда g1_0 указывает на две единицы в младших разрядах X1 и Х2, единичное значение разряда g2_0 указывает на наличие всех четырех единиц в разрядах X1, Х2, Х3 и Х4. В соответствии с данными выражениями реализованы группы преобразователей в двухразрядный двоичный код 7 и модули проверки полубайтов 9.
Передача на выход двух младших разрядов g1 и g0 двоичного кода соответствующих полубайтов выполняется двухразрядными коммутаторами 8. На выходы коммутаторов 8 передаются значения разрядов g1 и g0 только от одного полубайта из всех полубайтов, которые являются значениями разрядов b1 и b0 выходного двоичного кода для полубайта. Управление коммутаторами 8 выполняется модулями указателей младшего нуля 10, на выходах u_3, u_2, u_1, u_0 которых формируется унитарный код «1 из N», при котором только на одном выходе формируется единичное значение, а на остальных выходах формируются нулевые значения, или на всех выходах формируются нулевые значения. Таблица истинности для формирования значений выходов указателей младших нулей 10 и сигнала выхода переноса блока СО «все единицы» в зависимости от значений старших разрядов g2 двоичного кода полубайтов, которые соответствуют значениям «все единицы» полубайта, и входа переноса блока CI «все единицы» приведены в таблице 3. Единичное значение на соответствующем выходе и указателя младшего нуля 10 формируется при единичном значении на входе переноса блока CI «все единицы», единичных значениях в разрядах g2 для младших полубайт и нулевом значении соответствующего входа g2.
Для повышения быстродействия в устройство введена схема ускоренного переноса значений «все единицы» между блоками 1 первого каскада. Ускоренный перенос между блоками 1 реализуется группой из L элементов И 61, 62, …, 616 (L). Перенос внутри групп из четырех блоков 1 проводится параллельно, а между группами из четырех блоков 1 по следовательно.
Значения выходов u_3, u_2, u_1, u_0 указателей младшего нуля 10 используются также для формирования номера полубайта в блоках 1. Номер полубайта (разряды b3 и b2) внутри каждого блока 1 первого каскада формируется двухразрядными двоичными шифраторами 11 в соответствии с таблицей истинности приведенной в таблице 4. Двоичные шифраторы преобразуют унитарный код в двоичный код b3, b2. В таблице 4 приведено только пять строк, так как на входе не может быть других комбинаций. На основе таблицы 4 получены следующие выражения для разрядов b3 и b2 номера полубайта в каждом блоке:
b2 = u_1 or u_3,
b3 = u_2 or u_3.
При этом, так как единичное значение устанавливается только на одном выходе всех указателей младшего нуля 10 всех блоков 1 первого каскада, то значения разрядов g1 и g0 полубайтов передаются только на одном двухразрядном коммутаторе 8 и значения разрядов b3 и b2 формируются только на одном двухразрядном двоичном шифраторе 11, а на выходах остальных двухразрядных коммутаторов 8 и двухразрядных двоичных шифраторах 11 будут установлены нулевые значения. Одноименные выходы разрядов b3, b2, b1 и b0 блоков первого каскада соединены с входами одноименных элементах ИЛИ выходного блока 4, выходы которого являются соответствующими разрядами В3, В2, В1, В0 выходного двоичного кода В.
Во втором каскаде формируются значения разрядов b5 и b4 указывающие номер блока 1 в группах из четырех блоков 1 первого каскада. Формирование разрядов b5 и b4 выполняется аналогично как в таблице 4 на вторых указателях младшего нуля 12 и двоичных шифраторах 11, при этом входными данными для вторых указателей младшего нуля 12 являются выходы переноса блоков СО «все единицы» первого каскада, на всех выходах которых также формируется унитарный код «1 из N». Одноименные выходы b5 и b4 блоков 2 второго каскада соединены с входами одноименных элементах ИЛИ выходного блока 4, выходы которого являются соответствующими разрядами В5 и В4 выходного двоичного кода В. Кроме того в каждом блоке 2 второго каскада также формируются сигналы выхода переноса блока СО «все единицы».
Выходы переноса блока СО «все единицы» второго каскада являются входными сигналами для третьего каскада, далее выходы переноса блока СО «все единицы» третьего каскада являются входами для четвертого каскада и т.д. На фиг. 2 представлены формат данных шины X и схема формирования значений разрядов выходного кода В при N=256.
Таким образом, на (K + 1) разрядах В0, В1, …, В8 (BK + 1) выходного двоичного кода будет сформировано значение, соответствующее количеству старших нулей в соответствии со знаком числа для коррекции порядка при нормализации чисел. Если количество N разрядов входного двоичного числа D не кратно 4, то младшие разряды дополняются единичными значениями в соответствующем коде или нулевыми значениями на внутренней шине X.
Блоки каскадов предлагаемого устройства могут быть преобразованы для реализации в базисах штрих Шеффера (И-НЕ) или стрелка Пирса (ИЛИ-НЕ). Также блоки могут быть описаны на языках VHDL или Verilog для реализации на ПЛИС.
Предлагаемое устройство для коррекции порядка при нормализации чисел в сравнении с устройством прототипом обладает более высоким быстродействием, так как при увеличении разрядности входных данных в предлагаемом устройстве введены схемы для ускоренного переноса между блоками, а в прототипе применяется последовательная передача выходных разрядов количества нулей между 16-ти разрядными блоками. Также в предлагаемом устройстве уменьшаются аппаратные средства, так как для управления коммутаторами 8 передачи разрядов полубайтов и для формирования номеров полубайтов в двоичных шифраторах 11 используются одни и те же схемы указателей младших нулей 10, а в прототипе реализованы раздельно.
Вышеизложенные сведения позволяют сделать вывод, что предлагаемое устройство для коррекции порядка при нормализации чисел решает поставленную задачу определение количества старших нулевых разрядов в многоразрядных входных данных, обладает регулярностью узлов и связей, при этом упрощается конструкция и, следовательно, устройство соответствует заявляемому техническому результату - сокращение аппаратных затрат, увеличение быстродействия, расширение функциональных возможностей в части возможности определения старших нулевых разрядов для двоичных чисел со знаком, а также упрощение увеличения разрядности входных данных.
Figure 00000001
Figure 00000002

Claims (1)

  1. Устройство для коррекции порядка при нормализации чисел, содержащее вход знака Sign и N разрядов D1, D2, …, DN входного двоичного числа (D1 - старший разряд, DN - младший разряд), N разрядов X1, Х2, …, XN внутренней шины, (K+1) разрядов В0, В1, …, BK выходного двоичного кода (K=[log2N] меньшее целое, В0 - младший разряд, BK - старший разряд), (М+1) каскадов блоков пирамидальной структуры (М = ]log4(N/16)[ (большее целое)), при этом каждый i-й каскад (i=1, …, (М+1)) содержит ]N/16/4(i-1)[ блоков, выходной блок 4, состоящий из (K-2) элементов ИЛИ, входной блок 5 управляемой инверсии, состоящий из N-элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ», группу из L элементов И 61, 62, …, 6L (L количество блоков 1-го каскада, где L = ]N/16[ (большее целое)), при этом в 1-м каскаде каждый блок содержит преобразователь в двухразрядный двоичный код 7, состоящий из четырех групп, каждая из которых содержит первый элемент 2И с инверсным входом, второй элемент 2И, элемент 2ИЛИ и третий элемент 2И, двухразрядный коммутатор 8, состоящий из двух элементов 2И-2И-2И-2И-4ИЛИ, модуль проверки полубайтов 9, состоящий из четырех элементов 4И, первый модуль указателя младшего нуля 10, состоящий из четырех элементов И с одним инверсным входом и пятого элемента 4И, двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ, при этом каждый блок второго, третьего, …, (М+1)-го каскадов содержит второй модуль указателя младшего нуля 12, состоящий из трех элементов И с одним инверсным входом и четвертый элемент 4И, и двухразрядный двоичный шифратор 11, состоящий из двух элементов 2ИЛИ, причем N разрядов D1, D2, …, DN входного двоичного числа соединены с первыми входами соответствующих одноименных элементов «ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ» входного блока 5, вторые входы которых подключены к входу знака Sign двоичного числа, а выходы элементов входного блока 5 являются соответствующими N разрядами X1, Х2, …, XN внутренней шины (при этом X1 - младший разряд, XN - старший разряд), входами каждого j-го блока 1-го каскада (j=1, 2, …, L) являются 16 разрядов внутренней шины X, с (1+16(j-1))-го по (16+16(j-1))-й разряды, разделенные на четыре группы полубайт по четыре разряда каждая, причем все полубайты шины X нумеруются, начиная с младших разрядов, в каждом j-м блоке 1-го каскада в каждой группе преобразователя 7 младший первый разряд входа соответствующего полубайта соединен с первым входом первого элемента 2И с инверсным входом, первым входом второго элемента 2И и первым входом третьего элемента 2И, второй разряд входа полубайта соединен со вторым инверсным входом первого элемента 2И и вторым входом третьего элемента 2И, а третий разряд входа полубайта соединен со вторым входом второго элемента 2И, при этом выходы первого элемента 2И с инверсным входом и второго элемента 2И соединены с входами элемента 2ИЛИ, выход g0 которого является первым выходом каждой группы преобразователя 7, а выход g1 третьего элемента 2И является вторым выходом каждой группы преобразователя 7, а также в каждом j-м блоке 1-го каскада четыре разряда входа каждого полубайта соединены с четырьмя входами соответствующего элемента 4И модуля проверки полубайтов 9, причем выход g2_0 первого элемента 4И модуля проверки полубайтов 9 соединен со вторым инверсным входом первого элемента И, вторыми входами второго, третьего и четвертого элементов И и первым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_1 второго элемента 4И модуля проверки полубайтов 9 соединен с третьим инверсным входом второго элемента И, третьими входами третьего и четвертого элементов И и вторым входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_2 третьего элемента 4И модуля проверки полубайтов 9 соединен с четвертым инверсным входом третьего элемента И, четвертым входом четвертого элементов И и третьим входом пятого элемента И первого модуля указателя младшего нуля 10, выход g2_3 четвертого элемента 4И модуля проверки полубайтов 9 соединен с пятым инверсным входом четвертого элемента И и четвертым входом пятого элементов И первого модуля указателя младшего нуля 10, причем первые входы первого, второго, третьего и четвертого элементов И первого модуля указателя младшего нуля 10 соединены с входом переноса блока CI «все единицы» j-го блока, а выход пятого элемента И первого модуля указателя младшего нуля 10 является выходом переноса блока СО «все единицы» j-го блока, в каждом j-м блоке 1-го каскада первые выходы g0 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И первого элемента 2И-2И-2И-2И-4ИЛИ, а вторые выходы g1 каждой группы преобразователя в двухразрядный двоичный код 7 соединены с соответствующими первыми входами элементов 2И второго элемента 2И-2И-2И-2И-4ИЛИ, при этом вторые входы соответствующих одноименных элементов 2И первого и второго элементов 2И-2И-2И-2И-4ИЛИ соединены между собой и подключены к соответствующим выходам u_0, u_1, u_2, u_3 с первого по четвертый элементы И с инверсным входом первого модуля указателя младшего нуля 10, а также выходы второго u_1 и третьего u_2 элементов И с инверсным входом модуля указателя младшего нуля 10, соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом u_3 четвертого элемента И с инверсным входом модуля указателя младшего нуля 10, выходы первого b0 и второго b1 элементов 2И-2И-2И-2И-4ИЛИ двухразрядного коммутатора 8 и выходы первого b2 и второго b3 элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым, вторым, третьим и четвертым выходами каждого j-го блока 1-го каскада, в группе из L элементов И 61, 62, …, 6L первые входы j-го элемента И 6j (j=1, 2, …, L) соединены с выходом переноса СО «все единицы» j-го блока, а выходы элементов И, начиная с первого 61 до предпоследнего 6L-1 элементов, соединены с соответствующими входами переноса CI «все единицы» блоков, начиная со второго 12 до последнего 1L блока, вторые входы (1+4*Z)-го, (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов из группы из L элементов И 61, 62, …, 6L (Z=0, 1, …, (L/4-1)) подключены к входу переноса CI «все единицы» (1+4*Z)-го блока, третьи входы (2+4*Z)-го, (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (1+4*Z)-го блока, четвертые входы (3+4*Z)-го и (4+4*Z)-го элементов И подключены к выходу переноса СО «все единицы» (2+4*Z)-го блока, пятый вход (4+4*Z)-го элемента И подключен к входу переноса CI «все единицы» (3+4*Z)-го блока, кроме того, вход переноса CI «все единицы» первого блока 11 соединен с логической единицей, в каждом v-м блоке i-го каскада, начиная со второго каскада 2 до (М+1)-го каскада (i=2, …, (М+1), v=1, …, N/16/4(i-1)), выход переноса СО «все единицы» (1+4(v-1)) блока (i-1)-го каскада соединен с первыми входами первого, второго и третьего элементов И с инверсным входом и первым входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО «все единицы» (2+4(v-1)) блока (i-1)-го каскада соединен со вторым инверсным входом первого элемента И с инверсным входом и вторыми входами второго и третьего элементов И с инверсным входом и вторым входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО ««все единицы» (3+4(v-1)) блока (i-1)-го каскада соединен с третьим инверсным входом второго элемента И с инверсным входом, третьим входом третьего элемента И с инверсным входом и третьим входом четвертого элемента И второго указателя младшего нуля 12, выход переноса СО «все единицы» (4+4(v-1)) блока (i-1)-го каскада соединен со четвертым инверсным входом третьего элемента И с инверсным входом и четвертым входом четвертого элемента И второго указателя младшего нуля 12, а также выходы первого и второго элементов И с инверсным входом второго указателя младшего нуля 12 соединены с первыми входами соответственно первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11, вторые входы которых соединены с выходом третьего элемента И с инверсным входом второго указателя младшего нуля 12, при этом выход четвертого элемента И второго модуля указателя младшего нуля 12 является выходом переноса СО «все единицы» каждого v-го блока, а выходы первого и второго элементов ИЛИ двухразрядного двоичного шифратора 11 являются соответственно первым и вторым выходами каждого v-го блока, первый b0, второй b1, третий b2 и четвертый b3 выходы всех L блоков первого каскада 1 соединены с соответствующими входами одноименных элементов ИЛИ выходного блока 4, первый и второй выходы всех блоков в i-м каскаде (i=2, …, М) соединены с соответствующими входами соответственно (2i+1)-го и (2i+2)-го элементов ИЛИ выходного блока 4, выходы (K-2) элементов ИЛИ выходного блока 4, первый и второй выходы блока последнего (М+1)-го каскада и выход последнего элемента 6L из группы из L элементов И являются соответственно (K+1) разрядами В0, В1, …, BK выходного двоичного кода.
RU2017104392A 2017-02-09 2017-02-09 Устройство для коррекции порядка при нормализации чисел RU2638724C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017104392A RU2638724C1 (ru) 2017-02-09 2017-02-09 Устройство для коррекции порядка при нормализации чисел

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017104392A RU2638724C1 (ru) 2017-02-09 2017-02-09 Устройство для коррекции порядка при нормализации чисел

Publications (1)

Publication Number Publication Date
RU2638724C1 true RU2638724C1 (ru) 2017-12-15

Family

ID=60718619

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017104392A RU2638724C1 (ru) 2017-02-09 2017-02-09 Устройство для коррекции порядка при нормализации чисел

Country Status (1)

Country Link
RU (1) RU2638724C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2672626C1 (ru) * 2017-12-21 2018-11-16 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для определения количества нулей и единиц по группам в двоичном числе

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1241232A2 (ru) * 1984-02-29 1986-06-30 Войсковая часть 31303 Устройство дл подсчета числа нулей в двоичном коде
SU1765825A1 (ru) * 1990-09-04 1992-09-30 Войсковая часть 31303 Устройство дл подсчета числа нулей
US5844826A (en) * 1996-10-18 1998-12-01 Samsung Electronics Co., Ltd. Leading zero count circuit
US6697828B1 (en) * 2000-06-01 2004-02-24 Sun Microsystems, Inc. Optimized method and apparatus for parallel leading zero/one detection
RU2409837C2 (ru) * 2005-06-28 2011-01-20 Квэлкомм Инкорпорейтед Система и способ подсчета начальных нулевых разрядов и подсчета начальных единичных разрядов в цифровом процессоре сигналов
RU2446442C1 (ru) * 2011-04-11 2012-03-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Устройство для определения количества единиц (нулей) в двоичном числе
US8180815B2 (en) * 2005-05-17 2012-05-15 International Business Machines Corporation Redundancy-free circuits for zero counters

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1241232A2 (ru) * 1984-02-29 1986-06-30 Войсковая часть 31303 Устройство дл подсчета числа нулей в двоичном коде
SU1765825A1 (ru) * 1990-09-04 1992-09-30 Войсковая часть 31303 Устройство дл подсчета числа нулей
US5844826A (en) * 1996-10-18 1998-12-01 Samsung Electronics Co., Ltd. Leading zero count circuit
US6697828B1 (en) * 2000-06-01 2004-02-24 Sun Microsystems, Inc. Optimized method and apparatus for parallel leading zero/one detection
US8180815B2 (en) * 2005-05-17 2012-05-15 International Business Machines Corporation Redundancy-free circuits for zero counters
RU2409837C2 (ru) * 2005-06-28 2011-01-20 Квэлкомм Инкорпорейтед Система и способ подсчета начальных нулевых разрядов и подсчета начальных единичных разрядов в цифровом процессоре сигналов
RU2446442C1 (ru) * 2011-04-11 2012-03-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Устройство для определения количества единиц (нулей) в двоичном числе

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2672626C1 (ru) * 2017-12-21 2018-11-16 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для определения количества нулей и единиц по группам в двоичном числе

Similar Documents

Publication Publication Date Title
RU2446442C1 (ru) Устройство для определения количества единиц (нулей) в двоичном числе
RU2680762C1 (ru) Устройство групповой структуры для детектирования групп нулевых и единичных бит и определение их количества
US5122982A (en) Carry generation method and apparatus
RU2522875C2 (ru) Устройство для определения количества единиц в упорядоченном двоичном числе
WO1999066423A1 (fr) Dispositif pour calcul de donnees
RU2638724C1 (ru) Устройство для коррекции порядка при нормализации чисел
CN102378960B (zh) 半导体集成电路和指数计算方法
US5321640A (en) Priority encoder and method of operation
CN113918119A (zh) 存储器内多位数二进制乘法装置及其操作方法
Cui et al. A parallel decimal multiplier using hybrid binary coded decimal (BCD) codes
Kornerup Correcting the normalization shift of redundant binary representations
Chinal Design methods for digital systems
RU2633110C1 (ru) Устройство для определения количества старших единиц (нулей) в двоичном числе
JPH09244874A (ja) 最上位有効ビット位置予測方法
RU2711054C1 (ru) Устройство параллельно-последовательной структуры для детектирования групп нулевых и единичных бит и определение их количества
US5657260A (en) Priority detecting counter device
US6343303B1 (en) Method of determining a scaling factor
US7277909B2 (en) High speed adder
CN108052307B (zh) 处理器浮点单元前导零数量的超前运算方法及系统
TWI847921B (zh) 記憶體內二進位浮點乘法裝置及其操作方法
RU2672626C1 (ru) Устройство для определения количества нулей и единиц по группам в двоичном числе
CN117667010B (zh) 用于电路的二进制数的前导零个数确定方法和电路
RU2759002C1 (ru) Устройство параллельно-последовательной структуры для детектирования границ диапазона единичных бит
Smrithi et al. A fast architecture for maximum/minimum data finder with address from a set of data
RU2763903C1 (ru) Устройство групповой структуры для детектирования границ диапазона единичных бит

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20210210