Конфигурируемое вычислительное устройство

Изобретение относится к конфигурируемым по длине вычислительным устройствам для длинных чисел. Техническим результатом является повышение быстродействия вычислительного устройства, сокращение времени обработки данных. Указанный результат достигается за счет того, что устройство содержит два блока вычислительного устройства, каждый из которых разделен, по меньшей мере, на четыре субблока, состоящих из множества элементарных ячеек, при этом упомянутые блоки пространственно размещены таким образом, что расстояние между элементарной ячейкой первого блока и равнозначной элементарной ячейкой второго блока минимально. При этом конфигурация вычислительного устройства может быть изменена при помощи конфигурационных переключателей, установленных между субблоками устройства. 11 з.п. ф-лы, 6 ил.

 

Предлагаемое изобретение относится к вычислительным устройствам и, в частности, к конфигурируемым по длине вычислительным устройствам для длинных чисел.

DE 3631992 T2 описывает криптографический процессор для эффективного выполнения способа с открытым ключом Rivest, Shamir, Adleman, который известен также как RSA-метод. Необходимое для этого способа модульное возведение в степень вычисляется с применением способа умножения с упреждением и метода сокращения с упреждением. Для этого используется трехоперандовый сумматор. Известный трехоперандовый сумматор имеет длину 660 бит. Элементарная ячейка состоит из нескольких криптографических регистров, регистра сдвига, полусумматора, полного сумматора и элемента ускоренного переноса. Четыре подобные элементарные ячейки образуют четырехъячеечный блок, причем к нему присоединен элемент ускоренного переноса. Пять подобных четырехъячеечных блоков образуют 20-ти ячеечный блок. Устройство шифрования состоит из 33 таких 20-ти ячеечных блоков и устройства управления, которое включает в себя тактовый генератор для тактирования элементарных ячеек. Элементы ускоренного переноса четырехъячеечных блоков включены совместно, чтобы распознать, распространяется ли перенос на большее расстояние, а именно на 20 разрядов. Если активирован сигнал продвижения 20-ти разрядного блока, то это означает, что перенос рассматриваемого 20-ти разрядного блока зависит от переноса на выходе предшествующего блока. Если, напротив, сигнал продвижения 20-ти разрядного блока не активирован, то это означает, что имеющийся в наличии перенос на выходе этого блока, т.е. на самом старшем по значимости разряде этого блока, формируется внутри этого блока, а не зависит от предшествующего блока.

Тем самым является возможным повысить быстродействие рабочего цикла вычислительного устройства, т.е. скорость запитки новых входных операндов, по сравнению с наихудшим случаем, при котором дорожка переноса продолжается от самого младшего разряда всего вычислительного устройства до самого старшего разряда всего вычислительного устройства. Если активирован сигнал распространения для 20-ти разрядного блока, то рабочий цикл всего вычислительного устройства замедляется до такой степени, что принимается во внимание наихудший случай, т.е. вычислительное устройство останавливается до тех пор, пока перенос не распространится от самого младшего до самого старшего разряда всего вычислительного устройства.

Поэтому время цикла, т.е. время, спустя которое следующий входной операнд подается в вычислительное устройство, задается таким образом, чтобы его хватило для обработки переноса непосредственно соседних блоков. Преимущество этого состоит в том, что независимо от числа ячеек вычислительного устройства необходимо принимать во внимание только время переноса блока. Если же, напротив, установлено, что на перенос текущего блока влияет не только предыдущий блок, но и предыдущий блок предшествующего блока, то время цикла замедляется настолько, чтобы имелось достаточно времени для полной дорожки переноса.

На фиг.4 изображена элементарная ячейка для разряда i известного вычислительного устройства. Элементарная ячейка состоит из нескольких регистров для нескольких входных операндов, из которых на фиг.4 показаны лишь две регистровые ячейки 110 и 112. Элементарная ячейка также включает в себя сумматор 114 и регистровую ячейку для результата, которая на фиг.4 обозначена ссылочной позицией 116. Из относительно большого количества компонентов в элементарной ячейке, представленных на фиг.4, следует, что одна такая элементарная ячейка в своей практической реализации имеет относительно небольшую высоту h, но относительно большую ширину d. Основываясь на факте, что 660 таких элементарных ячеек должны быть уложены друг на друга, то получается узкая высокая башня. Технологически все же желательными являются по возможности квадратные чипы, так что узкая высокая башня разделяется на несколько малых стопок, которые размещаются рядом друг с другом. При этом каждая вторая стопка повернута вершиной вниз. Данные, которые требуются стопке от предыдущей стопки, переносятся на верхней и нижней стороне стопки к соседним стопкам.

Для того чтобы сократить время обработки, определенные криптографические алгоритмы могут обрабатываться при помощи двух параллельно работающих вычислительных устройств. Определенные алгоритмы имеют требование: если они, например, являются итеративными, то содержимое в регистре результата одного вычислительного устройства загружается в регистр операнда другого вычислительного устройства.

Подобная ситуация представлена на фиг.3. На фиг.3 изображены первое вычислительное устройство 91 длинных чисел и второе вычислительное устройство 92 длинных чисел. Каждое вычислительное устройство включает в себя некоторое количество элементарных ячеек 90, причем каждая элементарная ячейка имеет структуру, как показано на фиг.4. Количество элементарных ячеек в каждом вычислительном устройстве длинных чисел является одинаковым и составляет n. В зависимости от применения, вычислительные устройства имеют разную длину. Описанное в DE 36 312 992 C2 вычислительное устройство имеет длину 660 битов. Если должны быть параллельно выполнены две такие операции шифрования, то необходимо использовать два 660-битовых вычислительных устройства длинных чисел.

Для криптографии с использованием эллиптических кривых уже достигнута достаточная надежность, если используется секретный ключ, имеющий длину, например 160 битов. Поэтому такое вычислительное устройство должно иметь ширину минимум 160 битов. Для RSA-криптосистем существуют реализации с удовлетворительным уровнем надежности, при которых модуль имеет 1024 разряда. Более надежные RSA-системы имеют 2048 разряда. Поэтому для параллельного применения необходимо включить параллельно, например, два 1024-разрядных или два 2048-разрядных вычислительных устройства.

Чтобы загрузить содержимое в регистре результата, например, вычислительного устройства 1 длинных чисел (91 на фиг.3) во входной регистр операнда вычислительного устройства 2 длинных чисел (92 на фиг.3), можно использовать первый интерфейс шины, второй интерфейс 94 шины, а также, к примеру, 32-разрядную шину 95. Поэтому интерфейс 93 шины будет содержать блочную выборку 32-разрядных блоков из вычислительного устройства 1 длинных чисел. Затем каждый 32-разрядный блок переносится друг за другом к интерфейсу 94 шины через шину 95, причем интерфейс 94 шины обуславливает, что каждый новый 32-разрядный блок загружается в соответствующую элементарную ячейку вычислительного устройства длинных чисел. Для 660-разрядного вычислительного устройства требуется двадцать циклов, причем каждый цикл состоит из следующих этапов: адресация 32 элементарных ячеек в исходном вычислительном устройстве длинных чисел, выборка 32 элементарных ячеек в исходном вычислительном устройстве длинных чисел, перенос 32 битов через шину, адресация 32 элементарных ячеек в конечном вычислительном устройстве длинных чисел и загрузка в память 32 битов в адресованных 32 элементарных ячейках вычислительного устройства длинных чисел.

Доступ вычислительного устройства к регистру другого вычислительного устройства происходит при помощи предшествующего обмена в явном виде операндов через систему шин, с которой связаны оба вычислительных устройства. Согласно стандарту, ширина этой шины составляет 32 бита. В зависимости от предлагаемой системы шина может быть шириной 8 битов. Поэтому обмен для вычислительных устройств длинных чисел и, особенно, для последовательно-параллельных вычислительных устройств занимает продолжительное время. Кроме того, часто возникает проблема надежности, поскольку передача данных наблюдается в профиле тока.

Задача предлагаемого изобретения состоит в том, чтобы создать эффективное и надежное вычислительное устройство. Эта задача решается путем создания вычислительного устройства в соответствии с п.1 формулы изобретения.

В основе предлагаемого изобретения лежит идея о том, что регистровый обмен между двумя вычислительными устройствами длинных чисел можно ускорить, если первый блок вычислительного устройства размещен рядом со вторым блоком вычислительного устройства; если расстояние между одной элементарной ячейкой первого блока вычислительного устройства и равнозначной элементарной ячейкой второго блока вычислительного устройства меньше, чем среднее расстояние между такой же элементарной ячейкой первого блока вычислительного устройства и, по меньшей мере, двумя неравнозначными элементарными ячейками второго блока вычислительного устройства. Блоки вычислительного устройства соединены через устройство связи при помощи определенного количества линий связи, при этом количество линий связи равняется количеству элементарных ячеек в одном блоке вычислительного устройства, причем одна линия связи соединяет по меньшей мере одну регистровую ячейку в элементарной ячейке первого блока вычислительного устройства с по меньшей мере одной регистровой ячейкой элементарной ячейки, в соответствии со значимостью во втором блоке вычислительного устройства, и кроме того, предусмотрено устройство управления для загрузки содержимого регистровых ячеек одного блока вычислительного устройства через линии связи в регистровые ячейки другого блока вычислительного устройства.

Преимущество предлагаемого изобретения состоит в том, что регистровый обмен между обоими параллельно работающими вычислительными устройствами протекает быстрее, так как при этом требуется только один цикл.

Другое преимущество предлагаемого изобретения состоит в том, что оба параллельных вычислительных устройства расположены рядом, так что элементарные ячейки в обоих вычислительных устройствах с одинаковой значимостью расположены рядом, линии связи являются короткими и поэтому существенно затрудняется несанкционированное прослушивание, поскольку такое несанкционированное прослушивание может быть осуществлено тем легче, чем больше длина линии связи, подвергающейся такому прослушиванию.

Следующее преимущество предлагаемого изобретения сводится к тому, что профиль тока, в частности, у вычислительных устройств длинных чисел при передаче данных является однородным, поскольку параллельно переносится множество независимых друг от друга битов.

Еще одно преимущество предлагаемого изобретения сводится к тому, что вычислительное устройство можно подвергнуть реконфигурации за счет того, что два параллельно расположенных вычислительных устройства можно переконфигурировать в одно вычислительное устройство с двойной длиной, если дорожка переноса выходного сигнала переноса старшего разряда первого вычислительного устройства подключается на вход переноса младшего разряда второго блока вычислительного устройства. Другими словами, это означает, что очень длинное вычислительное устройство можно переконфигурировать путем воздействия на дорожку переноса между двумя или более блоками вычислительного устройства на 2, 4 параллельно работающих вычислительных устройства меньшей длины. Это свойство имеет особое преимущество для многоцелевого криптографического процессора, поскольку для определенных криптографических задач требуются различные длины вычислительных устройств. В криптографии с использованием эллиптических кривых длины кодов достигают порядка величины в пределах от 150 до 180 битов, предпочтительно 160 битов, для обеспечения достаточной надежности. Напротив, в обычной RSA-системе надежность достигается только в том случае, если применяются длины кодов 1024 битов или в последнее время даже 2048 битов, что неизбежно ведет к тому, что для эффективной обработки криптосистемы требуются вычислительные устройства длинных чисел длиной более чем 1024 или, соответственно, более 2048 битов.

С другой стороны, в частности в случае криптографических процессоров, которые размещаются на смарткартах в форме чипов, требование к поверхности чипа задается извне, и соответствующие размеры жестко соблюдаются. Возникает задача разместить в чипе заданных размеров такие необходимые компоненты для криптографического процессора, как, например, вычислительное устройство, запоминающее устройство и т.д. Требования, предъявляемые к поверхности чипа, приводят к тому, что предпочтительно предусматривать отдельное вычислительное устройство не для каждого криптографического алгоритма, а по возможности для всех криптографических алгоритмов одни и те же вычислительные устройства. С другой стороны, разная длина кода и сильно отличающаяся длина вычислительного устройства уже являются существенным отличительным критерием криптографических алгоритмов.

Способность к реконфигурации длины вычислительного устройства за счет введения дорожки переноса между двумя блоками вычислительного устройства и за счет обеспечения конфигурирующего устройства для соединения цепи вычислительного устройства, если требуется длинное вычислительное устройство, или для прерывания дорожки переноса, если требуются несколько параллельных коротких вычислительных устройств, обеспечивает преимущество, заключающееся в том, что может использоваться одно вычислительное устройство для нескольких приложений, и, дополнительно, если имеются более короткие длины кода, то часть вычислительного устройства не просто отключается, а может работать как второе параллельное вычислительное устройство, которое может осуществлять быстрый регистровый обмен с первым вычислительным устройством.

Для того чтобы разместить вычислительное устройство согласно данному изобретению на микросхеме, т.е. на интегральной схеме с заданной геометрией, каждый блок вычислительного устройства разбивается на субблоки. При этом субблоки вкладываются друг в друга так, что между двумя субблоками первого блока вычислительного устройства всегда размещается один субблок второго блока вычислительного устройства, и кроме того, субблоки первого и второго блоков вычислительного устройства размещены таким образом, что элементарные ячейки одинаковой значимости имеют между собой как можно меньшее расстояние. Это приводит к вложенной друг в друга двойной меандровой структуре. Таким образом, меандры обоих параллельных блоков вычислительного устройства размещаются попеременно. За первым выступом меандра одного вычислительного устройства следует первый выступ меандра другого блока вычислительного устройства, причем последний является геометрически зеркально отраженным, чтобы реализовать короткие расстояния между элементарными ячейками одинаковой значимости, если оба блока вычислительного устройства работают параллельно друг другу. Расположение блоков вычислительного устройства в виде входящей друг в друга меандровой структуры делает возможным такой вариант, при котором блоки вычислительного устройства посредством активации дорожки переноса соединяются в единое вычислительное устройство с двойной длиной.

Предпочтительные примеры выполнения предлагаемого изобретения детально разъясняются на прилагаемых чертежах:

фиг.1 - блок-схема вычислительного устройства согласно данному изобретению;

фиг.2 - блок-схема предпочтительной конфигурации вычислительного устройства согласно данному изобретению;

фиг.3 - блок-схема для осуществления регистрового обмена между первым вычислительным устройством длинных чисел и вторым вычислительным устройством длинных чисел при помощи обычной системы шин;

фиг.4 - схематичное изображение элементарной ячейки для бита i в вычислительном устройстве длинных чисел;

фиг.5 - блок-схема другого предпочтительного расположения вычислительного устройства согласно данному изобретению;

фиг.6 - детальный вид для разъяснения расположения двух блоков вычислительного устройства относительно друг друга.

На фиг.1 показана блок-схема вычислительного устройства согласно данному изобретению. Вычислительное устройство включает в себя первый блок 10 вычислительного устройства и второй блок 12. Каждый блок сам состоит из определенного количества элементарных ячеек 10а и, соответственно, 12а, а также из элементарной ячейки для младшего разряда 10в и 12в и элементарной ячейки для старшего разряда 10с и 12с. Элементарная ячейка 10в для младшего разряда вычислительного устройства 10 также обозначается как LSB1. Элементарная ячейка для старшего разряда вычислительного устройства 10 также обозначается как MSB1. Аналогичные обозначения выбраны для второго блока вычислительного устройства 12, причем термин "LSB" (least significant bit) используется для младшего разряда, а термин "MSB" (most significant bit) - для старшего разряда. Каждая элементарная ячейка, показанная на фиг.1, 10а, 10в, 10с, 12а, 12в, 12с, может быть выполнена так, как показано на фиг.4. Следует указать на то, что каждая элементарная ячейка включает в себя больше или меньше регистровых ячеек для операндов, подлежащих обработке сумматором элементарной ячейки, или больше или меньше регистровых ячеек для одного или нескольких результатов. Чтобы обеспечить быстрый обмен данными между регистрами обоих вычислительных устройств, каждое вычислительное устройство должно располагать элементарными ячейками, которые имеют по меньшей мере одну регистровую ячейку для сохранения в памяти разряда обрабатываемого вычислительным устройством операнда.

Показанное на фиг.1 вычислительное устройство включает в себя устройство соединения, которое имеет определенное количество линий связи 14а, 14в, 14с, причем каждая линия связи соединяет между собой две элементарные ячейки одинакового значения в обоих блоках вычислительного устройства. Так, например, линия связи 14а соединяет элементарную ячейку для бита i первого блока вычислительного устройства, которая на фиг.1 обозначена как 10а, с элементарной ячейкой для бита i второго блока вычислительного устройства 12, которая обозначена как 12а. Аналогично линия связи соединяет LSB-элементарную ячейку 10в первого блока 10 с LSB-элементарной ячейкой 12в второго блока. То же самое применимо к линии связи 14с, которая соединяет между собой обе MSB-элементарные ячейки обоих блоков вычислительного устройства.

Согласно данному изобретению, вычислительное устройство включает в себя устройство 16 управления для управления блоками 10, 12 вычислительного устройства, чтобы содержимое регистровых ячеек одного блока вычислительного устройства можно было загружать в содержимое другого блока через линии связи 14а, 14в, 14с напрямую для каждой элементарной ячейки.

Оба блока 10, 12 вычислительного устройства, показанного на фиг.1 предпочтительного варианта осуществления, могут функционировать как параллельные блоки, в известной степени независимо друг от друга. Другой вариант состоит в том, что оба блока 10 и 12 соединены таким образом, что они функционируют как единое вычислительное устройство с шириной, которая равна количеству элементарных ячеек в первом блоке 10 вычислительного устройства плюс количество элементарных ячеек во втором блоке 12 вычислительного устройства. Это достигается тем, что предусмотрена линия 18 переноса, которая соединяет выход переноса MSB-элементарной ячейки первого блока вычислительного устройства с входом переноса LSB-элементарной ячейки второго блока вычислительного устройства. Эта функциональность в дальнейшем достигается посредством конфигурирующего устройства 20, которое управляет выключателем 22, при этом если выключатель 22 открыт, то оба блока вычислительного устройства функционируют как два параллельных вычислительных устройства. Если выключатель 22 замкнут, то оба блока вычислительного устройства работают как единое вычислительное устройство. Биты операнда, которые хранятся в памяти элементарной ячейки первого блока 10 вычислительного устройства, представляют собой в этом случае младшие разряды полного операнда, в то время как разряды операнда, которые хранятся в памяти элементарных ячеек второго блока 12 вычислительного устройства, представляют собой старшие разряды полного операнда.

В соответствии с конструкцией и количеством элементарных ячеек в блоке вычислительного устройства и заданной геометрией для интегральной микросхемы, с помощью которой реализуется показанное на фиг.1 вычислительное устройство, может быть вполне достаточно пространственной конфигурации, показанной на фиг.1. Это имеет место в том случае, если заданная геометрия для процессора предписывает, что требуется вычислительное устройство с относительно незначительной шириной, или необходим прямоугольный чип.

Как правило, требование в этом отношении состоит в том, что желательно использовать квадратные чипы.

Для этой цели перейдем к представленной на фиг.2 предпочтительной двойной структуре меандра. Каждый блок вычислительного устройства разбит по меньшей мере на два субблока. На показанном на фиг.2 примере видно, что каждый из первого и второго блоков вычислительного устройства состоит из 16 элементарных ячеек, и что каждый блок вычислительного устройства разбит на два субблока с восемью элементарными ячейками. Следует указать на то, что типичные размеры для многоцелевых криптографических вычислительных устройств требуют более 1024 элементарных ячеек на каждый субблок.

Первый блок 10 вычислительного устройства разбит на первый субблок 101 и на второй субблок 102. Аналогичным образом второй блок вычислительного устройства разбивается на первый субблок 121 и на второй субблок 122. Первый субблок 101 и второй субблок 102 первого блока вычислительного устройства соединены дорожкой переноса 103. Таким же образом первый субблок 121 второго блока вычислительного устройства соединен дорожкой переноса 123 со вторым субблоком 122 второго блока вычислительного устройства (12 на фиг.1). Принадлежность отдельных субблоков к показанным на фиг.1 блокам вычислительного устройства обозначается на фиг.2 римскими цифрами.

Для того чтобы обеспечить короткие линии связи в меандровой структуре, оба блока вычислительного устройства располагаются в виде входящей друг в друга меандровой структуры, как показано на фиг.2. Так, например, LSB-элементарная ячейка первого блока вычислительного устройства соединена с LSB-элементарной ячейкой второго блока вычислительного устройства через линию связи 14в. То же самое действует для элементарной ячейки для разряда i первого блока вычислительного устройства и элементарной ячейки для разряда i второго блока вычислительного устройства, которые соединены между собой при помощи линии связи 14а. И, наконец, MSB-элементарная ячейка первого блока вычислительного устройства и MSB-элементарная ячейка второго блока вычислительного устройства соединены посредством линии связи 14с. В выбранном примере выполнения значение заносится в соответствующую элементарную ячейку. Значение элементарных ячеек первого блока составляет от 0 (LSB-элементарная ячейка) до 15 (MSB-элементарная ячейка). Значение второго блока составляет от 16 (LSB-элементарная ячейка) до 32 (MSB-элементарная ячейка), причем эти характеристики справедливы для случая, если первый и второй блоки вычислительного устройства соединены между собой через линию переноса 18 и выключатель 22, который удерживается конфигурирующим устройством 20 в закрытом положении.

В случае, если оба блока вычислительного устройства работают параллельно, значения элементарных ячеек первого блока вычислительного устройства не изменяются. Значения второго блока вычислительного устройства составляют, как показано на фиг.2, от 0 до 15.

Устройство 16 управления, как показано на фиг.2, имеет управляющее соединение к каждому субблоку вычислительного устройства, чтобы сделать возможным регистровый обмен между элементарными ячейками первого и второго субблока через соединительные линии 14а, 14в, 14с.

Показанная на фиг.2 вложенная друг в друга меандровая структура обоих блоков вычислительного устройства и, в частности, отдельных субблоков обеспечивает то, что соединительные линии между соответствующими элементарными ячейками одинаковой значимости являются как можно более короткими.

Следует указать, что на практике двойная меандровая структура состоит из большего количества субблоков, чем показано на фиг.2. На практике, в частности, отдельные субблоки имеют значительно большую высоту по сравнению с шириной. В этом случае для того, чтобы добиться приближенно квадратной формы чипа, необходимо разделить блок вычислительного устройства на более чем два субблока, и разместить в соответствии с показанной на фиг.2 встречно-штыревой структурой.

На фиг.5 показана другая предпочтительная конфигурация вычислительного устройства, которая возникает посредством отражения показанного на фиг.2 вычислительного устройства согласно первому примеру осуществления предлагаемого изобретения относительно горизонтальной оси. Показанное на фиг.5 вычислительное устройство включает в себя два блока вычислительного устройства, причем первый блок состоит из субблоков 1001, 1002, 1003 и 1004, а второй блок - из субблоков 1005, 1006, 1007 и 1008. Как показано на фиг.5, MSB вычислительного устройства с низким порядковым номером от 1 до 7 всегда соединяется с LSB вычислительного устройства с порядковым номером большим на единицу. Отдельные субблоки соединены посредством показанных на фиг.5 соединительных линий, которые представляют собой дорожку переноса, которая должна быть проложена от одного субблока к другому. На субблоках 1001 до 1008 направление от LSB до MSB соответствующего субблока обозначено стрелкой.

На фиг.5 также изображен переключатель 22, который имеет ту же функцию, что и переключатель 22 на фиг.2. Если выключатель замкнут, то вычислительное устройство, показанное на фиг.5, функционирует как одно единое вычислительное устройство длинных чисел с количеством разрядов 8 х m, где m - количество разрядов субблока 1001 до 1007.

Если, наоборот, выключатель разомкнут, то вычислительное устройство функционирует как два параллельных и соответственно более коротких вычислительных устройства. Первый блок вычислительного устройства имеет субблоки 1-4, в то время как в состав второго блока вычислительного устройства входят субблоки 5-8. Из фиг.5 далее видно, что разряды одинакового порядка в обоих более коротких вычислительных устройствах расположены настолько близко друг к другу, что расстояние между элементарной ячейкой первого блока вычислительного устройства и равнозначной элементарной ячейкой второго блока вычислительного устройства меньше, чем среднее расстояние между элементарной ячейкой первого блока вычислительного устройства и по меньшей мере двумя неравнозначными ячейками второго блока вычислительного устройства.

Следует отметить, что среднее расстояние можно рассчитать так, что все элементарные ячейки одного блока вычислительного устройства, неравнозначные относительно элементарной ячейки другого блока вычислительного устройства, соединены с элементарной ячейкой второго блока вычислительного устройства, интервал каждого отдельного соединения суммируется, и затем можно рассчитать среднее значение, например, путем деления получившейся длины на количество суммированных соединений. Однако для расчета среднего интервала не нужно суммировать каждое возможное соединение между обоими блоками вычислительного устройства и затем рассчитывать среднее значение. Вместо этого достаточно измерить некоторые соединения (например, 2) неравнозначных элементарных ячеек и затем на их основе рассчитать среднее значение. В любом случае конфигурация такова, что дорожки переноса между равнозначными элементарными ячейками являются короткими, чтобы был возможен быстрый регистровый обмен от одного блока вычислительного устройства к другому блоку вычислительного устройства, а именно через соединения между элементарными ячейками, посредством которых каждая элементарная ячейка одного блока вычислительного устройства соединена с соответствующей другой элементарной ячейкой другого блока вычислительного устройства одинакового порядка.

Следует указать на то, что отдельные субблоки не обязательно должны располагаться строго параллельно друг к другу, т.е. не обязательно так, что расстояние между двумя элементарными ячейками одинакового порядка всегда меньше, чем пространственный интервал между элементарной ячейкой первого блока вычислительного устройства и элементарной ячейкой на единицу большего порядка второго блока вычислительного устройства. Если, например, субблок 5 сдвигается в вертикальном направлении на длину половины, целой или нескольких элементарных ячеек, то тем не менее эффект согласно данному изобретению все равно достигается, хотя расстояние между равнозначными элементарными ячейками в субблоках 1001 и 1005 является таким же как расстояние от элементарной ячейки одного субблока до элементарной ячейки другого субблока следующего старшего или младшего разряда.

Это поясняется ниже со ссылкой на фиг.6. На фиг.6 изображен увеличенный фрагмент из фиг.1. Слева на фиг.6 показан первый блок 10 вычислительного устройства и, в частности, элементарные ячейки порядка i+2, i+1, i, i-1, i-2. Справа на фиг.6 показан второй блок вычислительного устройства с элементарными ячейками i+3, i+2, i+1, i, i-1, i-2. Принято, что высота каждой элементарной ячейки равна в обоих блоках. Высота каждой элементарной ячейки обозначена на фиг.6 как h. Исходя из этого, оба блока размещены не точно на одинаковой высоте, как показано на фиг.6, а смещены относительно друг друга на расстояние, равное половине высоты (h/2). Следует отметить, что возможны и другие значения смещения, при которых все же можно добиться наиболее коротких соединений между элементарными ячейками одинакового порядка, при условии, что смещение v между обоими блоками вычислительного устройства равно 0.

Линия связи 14а между обеими элементарными ячейками одинакового порядка в обоих блоках вычислительного устройства обозначена на фиг.6 сплошной линией. Согласно изобретению, оба блока вычислительного устройства размещаются так, что длина линии связи 14а короче, чем среднее расстояние между элементарной ячейкой i первого блока вычислительного устройства и минимум двумя элементарными ячейками различного порядка, например, элементарными ячейками порядка i+1 и i-1 или i+1, i+2 второго блока вычислительного устройства. Расстояние между элементарной ячейкой 10а и элементарной ячейкой ближайшего старшего разряда в блоке 12 вычислительного устройства, то есть элементарной ячейкой i+1 обозначено на фиг.6 как 60. Из фиг.6 видно, что это расстояние равно длине линии связи 14а. Из фиг.6 также видно, что расстояние между элементарной ячейкой 10а первого блока вычислительного устройства и, например, элементарной ячейкой с порядком i-1, которое обозначено на фиг.6 как 62, больше, чем расстояние 60. Если вычислить среднее арифметическое обоих расстояний 60, 62, то окажется, что это среднее арифметическое больше, чем длина линии связи 14а.

Следует указать на то, что для предлагаемого изобретения не важно, имеют ли оба блока вычислительного устройства форму прямоугольных столбцов, которые размещены параллельно друг другу. Вместо этого блоки вычислительного устройства могут иметь вид прямоугольных столбцов, которые размещены под углом друг к другу. Блоки вычислительных устройств также могут быть круговыми сегментами, а отдельные элементарные ячейки могут иметь форму кругового сектора, т.е. они не обязательно должны быть строго прямоугольными. Более того, отдельные размеры элементарных ячеек не обязательно должны быть одинаковы, хотя это и является предпочтительным в смысле более простого дизайна схемы и более простой разводки.

Каждое вычислительное устройство согласно изобретению имеет преимущество, которое заключается в том, что элементарные ячейки одинакового порядка расположены так друг к другу, что можно использовать короткие соединительные линии, чтобы обеспечить быстрый, полностью параллельный обмен данными между регистрами элементарных ячеек обоих блоков вычислительного устройства, если оба блока вычислительного устройства работают как отдельные вычислительные устройства.

Следует также отметить, что показанная на фиг.5 конфигурация вычислительного устройства может функционировать и таким образом, что параллельно будут работать четыре отдельных вычислительных устройства. Это достигается тем, что дополнительные переключатели 50а, 50в встроены между субблоками 1002 и 1003 и соответственно между субблоками 1006 и 1007. В этом случае имеются четыре независимых друг от друга более коротких вычислительных устройства, а именно, первое вычислительное устройство, которое состоит из субблоков 1 и 2; второе вычислительное устройство, состоящее из субблоков 5 и 6; третье вычислительное устройство, состоящее из субблоков 3 и 4, и четвертое вычислительное устройство, состоящее из субблоков 1007 и 1008.

Из фиг.5 видно, что и четыре вычислительных устройства размещены по отношению друг к другу таким образом, что возможен быстрый обмен данными между регистрами двух отдельных вычислительных устройств.

Если в соответствующие соединительные линии встроены переключатели от 52а до 52d, как показано на фиг.5, то конфигурация вычислительного устройства может использоваться как восемь отдельных вычислительных устройств, причем каждое вычислительное устройство имеет число элементарных ячеек, равное числу элементарных ячеек в субблоке 1001-1007.

Из фиг.5 видно, что соответствующее изобретению вычислительное устройство меандровой структуры является оптимально масштабируемым. Оно может функционировать как вычислительное устройство длинных чисел, а если открыт выключатель 22, то оно может действовать как два коротких вычислительных устройства. Если при открытом выключателе 22 выключатели 50а и 50в также открыты, то вычислительное устройство может функционировать как четыре коротких вычислительных устройства, благодаря чему всегда возможен быстрый обмен данными между двумя соседними вычислительными устройствами посредством линий связи.

Описание чертежей

10первый блок вычислительного устройства
10аэлементарная ячейка i
10bLSB1-элементарная ячейка
10сMSB1-элементарная ячейка
12второй блок вычислительного устройства
12аэлементарная ячейка i
12bLSB1-элементарная ячейка
12сMSB1-элементарная ячейка
14алиния связи
14bлиния связи
14слиния связи
16устройство управления
18линия переноса
20конфигурирующее устройство
22коммутационное устройства переноса
50а-50bпереключатель конфигураций
52а-52dпереключатель конфигураций
60, 62расстояние между неравнозначными элементарными ячейками
90элементарная ячейка
91первое вычислительное устройство длинных чисел
92второе вычислительное устройство длинных чисел
93интерфейс шины
94интерфейс шины
101первый субблок первого блока вычислительного устройства
102второй субблок первого блока вычислительного устройства
110регистровая ячейка для первого операнда
112регистровая ячейка для второго операнда
114сумматор
116регистровая ячейка для результата
121первый субблок второго блока вычислительного устройства
122второй субблок второго блока вычислительного устройства
1001-1008субблоки

1. Конфигурируемое устройство для обмена данными между вычислительными устройствами, обрабатывающими длинные числа, содержащее первый блок (10) вычислительного устройства, который состоит из первого множества элементарных ячеек (10а, 10b, 10 с), которые включают в себя элементарную ячейку (10b) для младшего разряда первого операнда и элементарную ячейку (10с) для старшего разряда первого операнда, причем каждая элементарная ячейка первого блока вычислительного устройства имеет, по меньшей мере, одну регистровую ячейку для сохранения в памяти разряда первого операнда или разряда результата, вычисленного элементарной ячейкой, причем первый блок вычислительного устройства состоит, по меньшей мере, из четырех субблоков (1001, 1002, 1003, 1004) и каждый из, по меньшей мере, четырех субблоков (1001, 1002, 1003, 1004) состоит из элементарных ячеек, второй блок (12) вычислительного устройства, который состоит из второго множества элементарных ячеек (12а, 12b, 12с), которые включают в себя элементарную ячейку (12b) для младшего разряда второго операнда и элементарную ячейку (12с) для старшего разряда второго операнда, причем каждая элементарная ячейка второго блока (12) вычислительного устройства имеет регистровую ячейку для сохранения в памяти разряда второго операнда или разряда результата, вычисленного элементарной ячейкой, причем второй блок вычислительного устройства состоит, по меньшей мере, из четырех субблоков (1005, 1006, 1007, 1008) и каждый из, по меньшей мере, четырех субблоков (1005, 1006, 1007, 1008) состоит из элементарных ячеек, при этом первый и второй блоки (10, 12) вычислительного устройства пространственно размещены по отношению друг к другу таким образом, что расстояние между элементарной ячейкой (10а) первого блока (10) вычислительного устройства и равнозначной элементарной ячейкой (12а) второго блока вычислительного устройства меньше, чем среднее расстояние между элементарной ячейкой (10а) первого блока (10) вычислительного устройства и неравнозначными элементарными ячейками (12b, 12с) второго блока (12) вычислительного устройства, при этом первый субблок (1005) второго блока вычислительного устройства расположен между первым субблоком (1001) и вторым субблоком (1002) первого блока вычислительного устройства, а направление от элементарной ячейки для младшего разряда к элементарной ячейке для старшего разряда первого субблока (1005) второго блока вычислительного устройства является одинаковым с направлением от элементарной ячейки для младшего разряда к элементарной ячейке для старшего разряда первого субблока (1001) первого блока вычислительного устройства, при этом направление от элементарной ячейки для младшего разряда к элементарной ячейке для старшего разряда первого субблока (1005) второго блока вычислительного устройства противоположно направлению от элементарной ячейки для младшего разряда к элементарной ячейке для старшего разряда второго субблока (1002) первого блока вычислительного устройства, при этом второй субблок (1006) второго блока вычислительного устройства расположен рядом с вторым субблоком (1002) первого блока вычислительного устройства, четвертый субблок (1008) второго блока вычислительного устройства расположен между третьим субблоком (1003) и четвертым субблоком (1004) первого блока вычислительного устройства и третий субблок (1007) второго блока вычислительного устройства расположен рядом с третьим субблоком (1003) первого блока вычислительного устройства, средство связи с количеством линий связи (14а, 14b, 14с), которое равно количеству элементарных ячеек в блоке (10, 12) вычислительного устройства, при этом линия связи соединяет, по меньшей мере, одну регистровую ячейку элементарной ячейки некоторой значимости первого блока (10) вычислительного устройства с регистровой ячейкой элементарной ячейки той же значимости второго блока (12) вычислительного устройства, причем линии связи расположены между двумя субблоками (1001, 1005), которые имеют одинаковое направление от элементарной ячейки для младшего разряда к элементарной ячейке для старшего разряда субблоков (1001, 1005), и средство (16) для загрузки содержимого регистровых ячеек блока (10) вычислительного устройства через определенное количество линий связи (14а, 14b, 14с) в регистровые ячейки другого блока (12) вычислительного устройства.

2. Устройство по п.1, отличающееся тем, что дополнительно содержит переключаемую линию переноса (18) для соединения выхода переноса элементарной ячейки (10с) для старшего разряда первого блока (10) вычислительного устройства с входом переноса элементарной ячейки (12b) для младшего разряда второго блока вычислительного устройства и средство конфигурирования (20) для коммутации переключаемой линии переноса (18), чтобы конфигурировать первый и второй блоки (10, 12) вычислительного устройства как единое вычислительное устройство, чтобы первый операнд и второй операнд могли обрабатываться как общий операнд, причем первый блок вычислительного устройства предусмотрен для младших разрядов общего операнда, а второй блок вычислительного устройства предусмотрен для старших разрядов общего операнда.

3. Устройство по п.1, отличающееся тем, что элементарная ячейка для младшего разряда первого субблока (1001) первого блока (10) вычислительного устройства расположена рядом с элементарной ячейкой для младшего разряда первого субблока (1005) второго блока (12) вычислительного устройства, элементарная ячейка для старшего разряда первого субблока (1001) первого блока (10) вычислительного устройства расположена рядом с элементарной ячейкой для старшего разряда первого субблока (1005) второго блока (12) вычислительного устройства, элементарная ячейка для младшего разряда второго субблока (1002) первого блока (10) вычислительного устройства расположена рядом с элементарной ячейкой для младшего разряда второго субблока (1006) второго блока (12) вычислительного устройства и элементарная ячейка для старшего разряда второго субблока (1002) первого блока (10) вычислительного устройства расположена рядом с элементарной ячейкой для старшего разряда второго субблока (1006) второго блока (12) вычислительного устройства.

4. Устройство по п.1, отличающееся тем, что количество элементарных ячеек в каждом субблоке первого и второго блоков вычислительного устройства одинаково.

5. Устройство по п.2, отличающееся тем, что каждый субблок имеет геометрический горизонтальный размер и геометрический вертикальный размер и каждый субблок расположен, по существу, параллельно другим субблокам, образуя окно, в котором попеременно расположены субблок первого блока вычислительного устройства и субблок второго блока вычислительного устройства.

6. Устройство по п.1, отличающееся тем, что каждая элементарная ячейка содержит, по меньшей мере, две регистровые ячейки входных операндов и регистровую ячейку результата, при этом каждая элементарная ячейка предназначена для загрузки содержимого регистровой ячейки результата в регистровую ячейку входного операнда той же самой элементарной ячейки.

7. Устройство по п.1, отличающееся тем, что каждая элементарная ячейка содержит, по меньшей мере, две регистровые ячейки входных операндов и регистровую ячейку результата, при этом средство (16) для загрузки содержимого регистровых ячеек предназначено для загрузки содержимого регистровой ячейки результата первого блока вычислительного устройства в регистровую ячейку входного операнда второго блока вычислительного устройства через линию связи (14а), соотнесенную с элементарной ячейкой одинаковой значимости, и средство (16) для загрузки содержимого регистровых ячеек предназначено для загрузки содержимого регистровой ячейки результата второго блока вычислительного устройства в регистровую ячейку входного операнда первого блока вычислительного устройства через линию связи (14а), соотнесенную с элементарными ячейками одинаковой значимости.

8. Устройство по п.1, отличающееся тем, что оно выполнено в виде вычислительного устройства длинных чисел.

9. Устройство по п.8, отличающееся тем, что первый блок вычислительного устройства состоит из более 160 элементарных ячеек и второй блок вычислительного устройства также состоит из более 160 элементарных ячеек.

10. Устройство по п.1, отличающееся тем, что между субблоком (1004) первого блока вычислительного устройства и субблоком (1005) второго блока вычислительного устройства установлен конфигурационный переключатель (22), который в открытом положении конфигурирует первый и второй блоки вычислительного устройства как независимые друг от друга блоки вычислительного устройства.

11. Устройство по п.10, отличающееся тем, что между соответствующими двумя субблоками (1002, 1003; 1006, 1007) одного блока вычислительного устройства установлены дополнительные переключатели (50а, 50b), причем упомянутые переключатели (50а, 50b) в открытом положении формируют из первого и второго блоков вычислительного устройства четыре независимых друг от друга вычислительных устройства, каждое из которых состоит из двух субблоков (1001, 1002; 1003, 1004; 1005, 1006; 1007, 1008).

12. Устройство по п.10 или 11, отличающееся тем, что содержит дополнительные переключатели (52a, 52b, 52c, 52d) для разъединения всех субблоков друг от друга таким образом, что при разомкнутом состоянии дополнительных переключателей (52а, 52b, 52 с, 52d,) вычислительное устройство преобразуется в восемь независимых друг от друга вычислительных устройств.



 

Похожие патенты:

Изобретение относится к области систем обработки данных, которые обеспечивают выполнение операций типа "один поток команд и множества потоков данных". .

Изобретение относится к системам обработки данных. .

Группа изобретений относится к вычислительной технике и может быть использована в арифметических процессорах. Техническим результатом является увеличение точности. Процессор принимает по меньшей мере один операнд с плавающей десятичной точкой и выполняет операцию с плавающей десятичной точкой с использованием по меньшей мере одного операнда с плавающей десятичной точкой для предоставления результата с плавающей десятичной точкой. Осуществляется определение того, сохранился ли в результате с плавающей десятичной точкой предпочтительный квант, который указывает значение, представленное в качестве младшего значащего разряда значащей части числа результата с плавающей десятичной точкой. В ответ на определение того, что предпочтительный квант не сохранился, на выходе предоставляется указание о возникновении квантового исключения. 3 н. и 15 з.п. ф-лы, 3 ил.

Группа изобретений относится к вычислительной технике и может быть использована для преобразования данных. Техническим результатом является повышение производительности. Способ содержит этапы получения процессором машинной команды для выполнения, причем машинная команда определена для выполнения компьютером согласно архитектуре компьютера и содержит по меньшей мере одно поле кода операции, предоставляющее код операции, причем код операции идентифицирует функцию преобразования из зонного в десятичный с плавающей точкой; поле первого регистра, определяющее ячейку первого операнда; поле второго регистра и поле смещения, причем содержимое второго регистра, определенного полем второго регистра, комбинируется с содержимым поля смещения с образованием адреса второго операнда; и директиву знака, использующуюся для указания того, имеет ли второй операнд поле знака; и выполнение машинной команды, включающее преобразование второго операнда в зонном формате в десятичный формат с плавающей точкой; и помещение результата преобразования в ячейку первого операнда. 3 н. и 17 з.п. ф-лы, 18 ил., 6 табл.
Наверх