Отображение с помощью мультинаборов команд

 

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

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

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

Известны системы, которые работают с более чем одним набором команд (например, ЭВМ VAX11 "Диджитал Эквипмент Корпорейшн" (Digital Equipment Corporation), они имеют командный режим АХ и режим совместимости, который позволяет им декодировать команды выпущенных ранее ЭВМ PDP11). Такие системы обычно имеют встроенный отдельный декодер команд для каждого набора команд. Декодеры команд - относительно сложные и большие схемные элементы.

Из патента США N 4274138, опубликованного 16 июня 1981 г. (прототип), известна также система управления с хранимой в памяти программой, которая обеспечивает переключение между системами командного слова.

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

С точки зрения одного своего аспекта, это изобретение позволяет разработать устройство обработки данных, содержащее: ядро процессора, реагирующее на множество сигналов управления ядром; декодирующее средство для декодирования P двоичных разрядв X-разрядного командного слова программы первого набора команд с целью генерирования указанных сигналов управления ядром; командный конвейер, по которому пропускают командные слова программы к указанному декодирующему средству; и первое отображающее средство, реагирующее на Y-разрядное командное слово программы второго набора команд, проходящее по указанному командному конвейеру, для отображения Q двоичных разрядов указанного Y-разрядного командного слова программы в указанные P двоичных разрядов соответствующего X-разрядного командного слова программы для декодирования указанным декодирующим средством, где Y меньше X, а указанный второй набор команд является подмножеством указанного первого набора команд.

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

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

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

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

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

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

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

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

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

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

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

Чтобы обеспечить различие в том, как наборы команд манипулируют регистрами, указанное второе отображающее средство расширяет указанные регистровые операнды указанных Y-разрядных командных слов программы для получения указанных регистровых операндов указанных X-разрядных командных слов программы.

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

Если рассматривать еще один его аспект, изобретение обеспечивает разработку способа обработки данных, включающего: ядро процессора, реагирующее на множество сигналов управления ядром; декодирование P двоичных разрядов X-разрядного командного слова программы первого набора команд декодирующим средством для генерирования сигналов управления ядром с целью управления ядром процессора; пропускание командных слов программы по командному конвейеру к указанному декодирующему средству; и отображение Q двоичных разрядов Y-разрядного командного слова программы второго набора команд, пропускаемого по указанному командному конвейеру, в указанные P двоичных разрядов соответствующего X-разрядного командного слова программы для декодирования указанным декодирующим средством, где Y меньше X, а указанный второй набор команд является подмножеством указанного первого набора команд.

Теперь будет описан вариант воплощения изобретения, приводимый только в качестве примера, со ссылками на прилагаемые чертежи, на которых: фиг. 1 - схематическая иллюстрация устройства обработки данных, включающего ядро процессора и запоминающую систему; фиг. 2 - схематическая иллюстрация команды и декодера команды для системы, имеющей один набор команд; фиг. 3 - иллюстрация командного конвейера и декодеров команд, предназначенных для использования в системе, имеющей два набора команд; фиг. 4 - иллюстрация декодирования X-разрядного командного слова программы; фиг. 5 и фиг. 6 - иллюстрации отображения Y-разрядных командных слов программы в X-разрядные командные слова программы; фиг. 7 - иллюстрация X-разрядного командного слова; фиг. 8 - иллюстрация Y-разрядного командного слова; и фиг. 9 - иллюстрация регистров обработки данных, имеющихся в наличии для первого набора команд и второго набора команд.

На фиг. 1 показана система обработки данных (которая выполнена в виде части интегральной схемы), содержащая ядро 2 процессора, связанное с Y-разрядной системой памяти 4. В этом случае Y = 16. Ядро 2 процессора включает блок 6 регистров, блок умножения 8 начальной загрузки, многорегистровое циклическое сдвиговое устройство 10, 32-разрядное арифметико-логическое устройство 12 и регистр 14 записываемых данных. Между ядром 2 процессора и запоминающей системой 4 находится командный конвейер 16, а также декодер 18 команд и регистр 20 считываемых данных. Регистр 22 счетчика команд, который является частью ядра 2 процессора, показан адресующимся к запоминающей системе 4. Инкрементор 24 счетчика команд служит для приращения значения счетчика команд в регистре 22 счетчика команд, когда выполняется каждая команда и нужно выбрать новую команду для командного конвейера 16.

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

Блок 6 регистров включает регистр 26 текущего состояния программирования (CPSP) и регистр 28 сохраненного состояния программирования (SPSP). Регистр 26 текущего состояния программирования хранит флаги различных условий и состояния для ядра 2 процессора. Эти флаги могут включать флаги режима обработки (например, режима системы, режима пользователя, режим запрета памяти и т. д. ), а также флаги, указывающие на появление нулевых результатов в арифметических операциях, переносов и т.п. Регистр 28 сохраненного состояния программирования (который может быть одним из блочного множества таких регистров сохраненного состояния программирования) используют для временного запоминания содержимого регистра 26 текущего состояния программирования в случае исключительной ситуации, которая вызывает срабатывание переключателя режима обработки. В этом случае отработка исключительной ситуации может быть проведена быстрее и эффективнее.

В регистре 26 текущего состояния программирования находится флаг T набора команд. Этот флаг набора команд подают на декодер 18 команд и инкрементов 24 счетчика команд. Когда установлен этот флаг T набора команд, система работает с командами второго набора команд (т.е. с Y-разрядными командными словами программы, в этом случае - с 16-разрядными командными словами программы). Флаг T набора команд управляет инкрементором 24 счетчика команд с целью установки меньшего шага прекращения при работе со вторым набором команд. Это соответствует командным словам программы второго набора команд, которые меньше и за счет этого ближе расположены друг к другу в ячейках памяти запоминающей системы 4.

Как упоминалось выше, запоминающая система 4 представляет собой 16-разрядную запоминающую систему, соединенную посредством шин 16-разрядных данных с регистром 20 считываемых данных и командным конвейером 16. Такие 16-разрядные запоминающие системы проще и дешевле обладающих более высокими рабочими характеристиками 32-разрядных запоминающих систем. С помощью таких 16-разрядных запоминающих систем можно осуществлять выборку 16-разрядных командных слов программы за один цикл. Однако, если приходится использовать 32-разрядные команды из второго набора команд (что задается флагом T набора команд), то необходимые две выборки команды, чтобы восстановить одну 32-разрядную команду для командного конвейера 16.

Сразу после восстановления требуемых командных слов программы из запоминающей системы 4 их декодирует декодер 18 команд, в результате чего инициируется 32-разрядная обработка в ядре 2 процессора, безотносительно того, являются команды 16-разрядными или 32-разрядными.

Декодер 18 команд показан на фиг. 1 в виде единого блока. Однако, чтобы можно было работать с более чем одним набором команд, декодер 18 команд имеет более сложную структуру, которая будет рассмотрена в связи с фиг. 2 и 3.

На фиг. 2 показаны командный конвейер 16 и декодер 18 команд для воспроизведения одного набора команд. В этом случает декодер 18 команд включает только первое декодирующее средство 30, которое задействуют для декодирования 32-разрядных команд. Это декодирующее средство 30 декодирует первый набор команд (набор команд в режиме асинхронного ответа - ARM), используя программирующую логическую матрицу (ПЛМ (PLA) для получения множества сигналов 32 управления ядром, которые подаются в ядро 2 процессора. Декодируемое в данный момент командное слово программы (т.е. то слово, которое обеспечивает выдачу сигналов 32 управления ядром) также хранится в регистре 34 команд. Функциональные элементы в ядре 2 процессора (например, блок умножения 8 начальной загрузки или блок 6 регистров) считывают операнды, необходимые для операции их обработки, непосредственно из этого регистра 34 команд.

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

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

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

Это второе декодирующее средство декодирует 16-разрядные команды (команды переключения), используя быстродействующую ПЛМ 38 и параллельную медленно действующую ПЛМ 40. Быстродействующая ПЛМ 38 служит для отображения подмножества (0 двоичных разрядов) двоичных разрядов 16-разрядных команд переключения в P двоичных разрядов соответствующих 32-разрядным ARM-команд, которые необходимы для задействования первого декодирующего средства 30. Поскольку для осуществления этого отображения требуется относительно небольшое количество двоичных разрядов, быстродействующая ПЛМ 38 может быть относительно ограниченной и за счет этого работать достаточно быстро, чтобы дать первому декодирующему средству время, достаточное для генерирования сигналов 32 управления ядром в ответ на содержимое канала C. Можно считать, что быстродействующая ПЛМ 38 срабатывает с целью "подделки" критических двоичных разрядов соответствующей 32-разрядной команды для первого декодирующего средства без затрат какого бы то ни было необязательного времени на отображение всей команды.

Тем не менее, полная 32-разрядная команда по-прежнему необходима для ядра 2 процессора, если ему приходится работать без радикальных изменений и важных дополнительных схемных элементов. При чувствительном ко времени отображении, которое проводит быстродействующая ПЛМ 38, медленно действующая ПЛМ 40, подключенная параллельно, служит для отображения 16-разрядной команды в соответствующую 32-разрядную команду и помещает ее в регистр 34 команд. Это более сложное отображение может происходить так, что в течение всего времени, которое оно занимает, будут задействованы быстродействующая ПЛМ 38 и первое декодирующее средство 30. Важным фактором является то, что 32-разрядная команда должна быть представлена в регистре 34 команд в течение времени, достаточного для считывания любых операндов из этого регистра в ответ на сигналы 32 управления ядром, воздействующее на ядро 2 процессора.

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

На фиг. 4 проиллюстрировано декодирование 32-разрядной команды. В верхней части фиг. 4 показаны циклы синхронизации последовательной обработки, в процессе которых осуществляются операция выборки, операция декодирования и наконец - операция выполнения. Если этого требует конкретная команда (например, команда умножения), то могут быть введены один или несколько дополнительных циклов выполнения.

32-разрядная команда 42 состоит из множества разных полей. Границы между этими полями будут разными для разных команд, как будет показано позже на фиг. 7.

Некоторые из двоичных разрядов в команде 42 требуют декодирования на этапе первичного декодирования. Эти P двоичных разрядов являются двоичными разрядами 4-7, 20 и 22-27. Имеются двоичные разряды, которые необходимы первому средству декодирования 3 и которые должна "подделать" первая ПЛМ 38. Эти двоичные разряды следует подать на первое декодирующее средство, которое должно их декодировать для генерирования соответствующих сигналов 32 управления ядром к концу первой части цикла декодирования. Декодирование полной команды может, при необходимости, занимать весь цикл декодирования. В конце цикла декодирования операнды, находящиеся в команде, считываются из регистра 34 команд ядром 2 процессора во время цикла выполнения. Эти операнды могут быть спецификаторами регистров, смещениями или другими переменными.

На фиг. 5 показано отображение одного примера 16-разрядной команды в 32-разрядную команду. Толстые линии начинаются от Q двоичных разрядов в 16-разрядной команде, которые требуется отобразить в P двоичных разрядов в 32-разрядной команде так, чтобы их можно было подать на первое декодирующее средство 30. Должно быть видно, что большинство этих двоичных разрядов претерпевают либо прямое кодирование, либо простое отображение. Операнды Rn, Pd и Immediate в 16-разрядной команде требуют дополнения на конце самых старших разрядов нулями, чтобы заполнить 32-разрядную команду. Это дополнение необходимо в результате того, что операнды 32-разрядной команды имеют больший диапазон, чем операнды 16-разрядной команды.

Из обобщенной формы 32-разрядной команды, приведенной в нижней части фиг. 5, будет видно, что 32-разрядная команда обладает значительно большей гибкостью, чем подмножество этой команды, которым является 16-разрядная команда. Например, 32-разрядные команды предваряются кодами условий Cond, что позволяет создать команду, выполняемую по условию. В отличие от этого, 16-разрядные команды не несут в себе никакие коды условий, а коды условий 32-разрядных команд, в которые они отображаются, настроены на значение "1110", которое эквивалентно состоянию "всегда" выполнения по условию.

На фиг. 6 проиллюстрировано отображение еще одной такой команды. 16-разрядная команда в этом случае относится к типу команды загрузки-запоминания, отличающейся от той, которая показана на фиг. 5. Тем не менее, эта команда по-прежнему является подмножеством команды одиночной передачи данных из набора 32-разрядных команд.

На фиг. 7 схематически проиллюстрированы форматы 11 разных типов команд для набора 32-разрядных команд. В порядке очередности, это команды: 1. передачи в регистр состояния программирования обработки данных; 2. умножения; 3. одиночного обмена данными; 4. одиночной передачи данных; 5. неопределенная; 6. блочной передачи данных; 7. ветвления; 8. передачи данных в сопроцессор; 9. обработки данных сопроцессора; и 10. передачи в регистр сопроцессора; 11. прерывания программного обеспечения.

Полное описание этого набора команд можно найти в Листе технической информации ЭВМ ARM6, поставляемой "Ар Ай Эс Си Машинз Лимитед" (RISC Machines Limited). Команда, выделенная на фиг. 7, - это та команда, которая проиллюстрирована на фиг. 5 и 6.

На фиг. 8 проиллюстрирован набор 16-разрядных команд, предусматриваемый в дополнение к работе 3-разрядных команд. Команды, выделенные в этом наборе команд, - это те команды, которые проиллюстрированы на фиг. 5 и 6, соответственно. Команды в этом наборе 16-разрядных команд выбраны так, что их все можно отображать в одну 32-разрядную команду, и таким образом являются подмножеством набора 32-разрядных команд.

Поочередный просмотр каждой команды из этого набора команд показывает, что форматы задают следующее:
Формат 1: Op = 0,1 (коды операций - прим. Перев.). В обоих операциях
устанавливаются флаги кода условия.

0: ADD Rd, Rs, No. Immediate 3.

1: SUB Rd, Rs, No. Immediate 3.

Формат 2: Op = 0,1. В обоих операциях устанавливаются флаги кода условия.

0: ADD Rd, Rm, Rn
1: SUB Rd, Rm, Rn
Формат 3: 3 кода операций. Используется для построения больших безотлогательных команд.

1 = ADD Pd, Pd, No. Immediate 8 < < 8
2 = ADD Pd, Pd, No. Immediate 8 < < 8
3 = ADD Pd, Pd, No. Immediate 8 < < 24
Формат 4: Операция задает 3 кода операций, причем все разновидности операций являются операциями MOVS Pd Ps SHIFT No. Immediate
5, где SHIFT означает
0 - LSL
1 - LSR
2 - ASR
Сдвиги на ноль разрядов - в соответствии с определением на ARM.

Формат 5: Op1 8 + Op2 задает 32 кода операций АЛУ (ALU - арифметико-логического устройства), Pd = Pd op Rn.

Во всех операциях устанавливаются флаги кода условия.

Это операции:
AND, OR, EOR, BIC (AND NOT), NEGATE, CMP, CMN, MUL,
TST, TEQ, MOV, MVN (NOT), LSL, LSR, ROR, ASR
Пропадание ADC, SBC, MULL
Сдвиги на ноль разрядов и на число разрядов свыше
31 - в соответствии с определением на ARM.

8 специальных кодов операций, LO задает регистры 0-7, HI задает регистры 8-15: SPECIAL означает CPSR или SPSP; MOV HI, LO (пересылка содержимого из недоступного пользователю регистра доступный пользователю регистр); MOV LO, HI (пересылка содержимого из доступного пользователю регистра в недоступный пользователю регистр); MOV HI, HI (например, возврат процедуры); MOVS HI, HI (например, возврат исключения); MOVS HI, LO (например, возврат прерывания, может быть HI, HI, No. 4); MOV SPECIAL, LO (MSR); MOV LO, SPECIAL (MRS); CMR HI, HI (контроль предела стека); 8 свободных кодов операций
Формат 6: Операция задает 4 кода операций. Во всех операциях задаются флаги кода условия
0: MOV Rd, No. Immediate 8
1: CMP Rs, No. Immediate 8
2: ADD Pd, Pd No. Immediate 8
Возможно записать AND для ADD Rd, Rs No. Immediate 5.

Формат 7: Загружают слово PC + смещение (256 слов, 1024 байта).

Примечание: смещение должно быть согласовано со словом:
LDR Rd. [PC, No. + 1024]
Эту команду используют для доступа к следующему пулу литералов для
загрузки констант, адресов и т.д.

Формат 8: Загрузка и запоминание слова из SP (r7) + 256 слов (1024 байта)
Байт загрузки и запоминания из SP (r7) + 256 байт
LRD Rd, [SP, No. + 1024]
LDRM Pd, [SP, No. + 256]
Эти команды предназначены для доступа в стек и в группу данных.

Формат 9: Слово (или байт) загрузки и запоминания, с обозначением 3-разрядного безотлагательного смещения (после указания приращения в сторону увеличения/уменьшения), принудительная обратная запись L-загрузка/запоминание, U-вверх/вниз (вмещение со сложением/вычитанием), B-байт/слово
LDR {B} Rd, [Ro], No. +/-Offset 3
STR {B} Rd, [Ro], No. +/-Offset 3
Эти команды предназначены для доступа в массив.

Коды смещения для байтов - 0-7, а для слов - 0, 4-28.

Формат 10: Слово (или байт) загрузки и запоминания с заданным смещением регистра (предваряемым указанием приращения в сторону увеличения/уменьшения), отсутствие обратной записи
L - загрузка-запоминание, U - вверх/вниз (смещение со сложением/вычитанием), B - байт/слово
LDR Rd, [Rb, +/-Ro, LSL No. 2]
STR Rd, [Rb, +/-Ro, LSL No. 2]
LDRB Rd, [Rb, +/-Ro]
STRB Rd, [Rb, +/-Ro]
Эти команды предназначены для использования при доступе к указателю основания + смещения, а в сочетании с 8-разрядными командами MOV, ADD, SUB обеспечивают исключительно быстрый безотлагательный доступ со смещением.

Формат 11: Слово (или байт) загрузки и смещения с заданным 5-разрядным безотлагательным смещением (предваряемым указанием приращения в сторону увеличения/уменьшения).

Отсутствие обратной записи
LDR {B} Rd, [Rb], No. + Offset 5
STR {B} Rd, [Rb], No. + Offset 5
Эти команды предназначены для структурного доступа.

Смещение кодирует 0-31 для байтов и 0,4-124 для слов.

Формат 12: Многократная загрузка и запоминание (принудительная обратная запись)
LDMIA Rb!, {Rlist}
STMIA Rb!, {Rlist}
Rlist задает регистры Or - r7.

Подклассом этих команд является пара команд вызова подпрограммы и возврата.

Для LDM, если r7 - основание и разряд 7 установлен в rlist, загружается PC.

Для STM, если r7 - основание и разряд 7 установлен в rlist, запоминается LR.

Если разряд 7 используют в качестве основного регистра, то вместо него используют sp.

В обоих случаях реализуется полностью убывающий стек, т.е. команда LDM аналогична команде LDMFD для ARM, а команда STM аналогична команде STMFD для ARM. Поэтому для копирования блока используйте r7 в качестве указателя конца. Если r7 не является основанием, LDM и STM аналогичны LDMIA и STMIA для ARM.

Формат 13: адресация загрузки. Эта команда добавляет 8-разрядную необозначенную константу либо к указателю PC, либо к указателю стека и запоминает результаты в регистре назначения.

ADD PD, sp, + 256 байт
ADD Pd, pc, + 256 слов (1024 байта).

Разряд sp показывает, что является источником - SP или ЗС.

Если источником является SP, а r7 задан в качестве регистра назначения, то в качестве регистра назначения используют SP.

Формат 14: Ветвление по условию, +/- 128 байт, где cond определяет код условия (как и на APM); cond = 15 кодируется как SWI (только 256, должно быть много)
Формат 15: Устанавливает разряды 22:12 длинной ветви и канала.

MOV 1r, No. Offset < < 12
Формат 16: Реализует длинную ветвь и канал. Операция представляет собой SUB newlr, pc, No. 4; ORR pc, oldlr, No. Offset < < 1; new 1r и oldlr означают регистр 1r перед операцией и после нее.

Как упоминалось выше, набор 16-разрядных команд имеет суженные диапазоны операндов по сравнению с набором 32-разрядных команд. В соответствии с этим, набор 16-разрядных команд использует подмножество регистров 6 (см. фиг. 1), предусмотренных для полного набора 32-разрядных команд. На фиг. 9 показано подмножество регистров, которые используются набором 16-разрядных команд.


Формула изобретения

1. Устройство обработки данных, содержащее ядро процессора, реагирующее на множество сигналов управления ядром, отличающееся тем, что содержит декодирующее средство для декодирования Р двоичных разрядов Х-разрядного командного слова программы первого набора команд для генерирования указанных сигналов управления ядром, командный конвейер, по которому пропускают командные слова программы к указанному декодирующему средству и первое отображающее средство, реагирующее на Y-разрядное командное слово программы второго набора команд, проходящее по указанному командному конвейеру, для отображения Q двоичных разрядов указанного Y-разрядного командного слова программы в указанные Р двоичные разряды соответствующего Х-разрядного командного слова программы для декодирования указанным декодирующим средством, где Y меньше X, а указанный второй набор команд является подмножеством указанного первого набора команд.

2. Устройство по п.1, отличающееся тем, что содержит регистр команд для хранения Х-разрядной команды, выполняемой указанным ядром процессора, которое считывает значения операндов из указанного регистра команд.

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

4. Устройство по п.3, отличающееся тем, что указанное второе отображающее средство отображает указанное Y-разрядное командное слово программы в полную версию указанного соответствующего Х-разрядного командного слова программы и запоминает указанную полную версию указанного соответствующего Х-разрядного командного слова программы в указанном регистре команд.

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

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

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

8. Устройство по любому из пп.1-7, отличающееся тем, что ядро процессора имеет множество регистров, используемых указанным первым набором команд и называемых регистровыми операндами, в некоторых из указанных Х-разрядных командных слов программы, а указанный второй набор команд использует подмножество указанных регистров, называемых регистровыми операндами, в некоторых из указанных Y-разрядных командных слов программы.

9. Устройство по п.8, отличающееся тем, что содержит регистр команд и второе отображающее средство, причем указанное второе отображающее средство расширяет указанные регистровые операнды указанных Y-разрядных командных слов программы для получения указанных регистровых операндов указанных Х-разрядных командных слов программы.

10. Устройство по п.3, отличающееся тем, что указанные операнды указанных Х-разрядных командных слов программы имеют больший диапазон, чем указанные операнды указанных Y-разрядных командных слов программы, а указанное второе отображающее средство расширяет указанные операнды из указанных Y-разрядных командных слов программы для получения указанных операндов указанных Х-разрядных командных слов программы.

11. Устройство по любому из пп.1-10, отличающееся тем, что Р меньше X.

12. Устройство по любому из пп.1-11, отличающееся тем, что Q меньше или равно Р.

13. Устройство по любому из пп.1-12, отличающееся тем, что Х равно 32, а Y равно 16.

14. Устройство по любому из пп.1-13, отличающееся тем, что представляет собой интегральную схему.

15. Способ обработки данных, при котором используют ядро процессора, реагирующее на множество сигналов управления ядром, отличающийся тем, что декодируют Р двоичных разрядов Х-разрядного командного слова программы первого набора команд декодирующим средством для генерирования сигналов управления ядром для управления ядром процессора, пропускают командные слова программы по командному конвейеру к указанному декодирующему средству и отображают Q двоичных разрядов Y-разрядного командного слова программы второго набора команд, пропускаемого по указанному командному конвейеру, в указанные Р двоичные разряды соответствующего Х-разрядного командного слова программы для декодирования указанным декодирующим средством, где Y меньше X, а указанный второй набор команд является подмножеством указанного первого набора команд.

РИСУНКИ

Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9



 

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

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

Изобретение относится к области обработки данных, его использование позволяет ускорить обработку собственных команд и байт-кодов Джавы (машинно-независимых кодов, генерируемых Джава-компилятором) с использованием аппаратного устройства выполнения для байт-кодов Джавы, где они не поддерживаются аппаратными средствами

Изобретение относится к процессорам с конвейерной архитектурой
Наверх