[go: up one dir, main page]

RU2837139C1 - Reduced instruction set of micro-operating system byte-code and device with limited resources - Google Patents

Reduced instruction set of micro-operating system byte-code and device with limited resources Download PDF

Info

Publication number
RU2837139C1
RU2837139C1 RU2023116227A RU2023116227A RU2837139C1 RU 2837139 C1 RU2837139 C1 RU 2837139C1 RU 2023116227 A RU2023116227 A RU 2023116227A RU 2023116227 A RU2023116227 A RU 2023116227A RU 2837139 C1 RU2837139 C1 RU 2837139C1
Authority
RU
Russia
Prior art keywords
command
instruction
commands
parameters
data type
Prior art date
Application number
RU2023116227A
Other languages
Russian (ru)
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 Пекин Уотчдата Ко., Лтд.
Application granted granted Critical
Publication of RU2837139C1 publication Critical patent/RU2837139C1/en

Links

Abstract

FIELD: physics.
SUBSTANCE: invention relates to a device with limited resources for running a virtual machine. Device contains microcircuits in the form of intelligent security elements and secure micro controller unit chips, wherein the reduced command set executed by the virtual machine comprises a first command, wherein the first command contains an operation code, wherein the information on the parameters of the first command is contained implicitly in the operation code; a second command, which is a high-frequency command having a plurality of command formats; third command, which contains commands having different command formats based on the number of different parameters; fourth command, which contains commands of frequently used data type and commands of seldom used data type, wherein commands of frequently used data type have multiple formats of commands, and commands of the infrequently used data type have one command format; fifth command, which is a command having a single-byte index of a set of constants; sixth command, which is a macro command; wherein the reduced command set based on the register is configured to reduce the need for memory of microcircuits for permanent storage by minimizing the size of the byte code.
EFFECT: reducing the size of the byte code, which reduces the requirements for the memory of the microcircuit for permanent storage and increases efficiency of executing the code with limited resources of the computing device.
7 cl, 1 dwg, 22 tbl

Description

Область техникиField of technology

Настоящее изобретение относится к области техники набора команд виртуальной машины и, в частности, относится к сокращенному набору команд байт-кода микрооперационной системы и устройству с ограниченными ресурсами.The present invention relates to the field of virtual machine instruction set technology and, in particular, relates to a reduced bytecode instruction set of a micro-operating system and a resource-constrained device.

Уровень техникиState of the art

Язык программирования Java является объектно-ориентированным языком. «Класс» описывает набор данных (описания доменов), а также данные для работы с различными методами. Поля и методы классов описывают состояние и поведения объекта. Интеллектуальный SE (Secure Element (элемент безопасности)), микросхема безопасности с MCU (Micro Controller Unit (микроконтроллер)) имеют ограниченные ресурсы, и в настоящее время широко используется виртуальная машина Java Card, которая может запускать написанные на языке Java приложения. Приложения, написанные на языке Java, должны сгенерировать файл Class посредством компилятора Java, а затем преобразовать файл Class в файл Cap с помощью инструмента преобразования, предоставляемого Java Card, загрузить его в микросхему и выполнить его виртуальной машиной Java Card. Существуют проблемы с низкой производительностью выполнения набора команд Java Card на основе стека операндов по сравнению с байт-кодом набора команд на основе регистра.The Java programming language is an object-oriented language. A "class" describes a set of data (domain descriptions) and data for operation with various methods. Class fields and methods describe the state and behavior of an object. Intelligent SE (Secure Element), a security chip with MCU (Micro Controller Unit) have limited resources, and Java Card virtual machine, which can run applications written in Java, is widely used nowadays. Applications written in Java must generate a Class file through a Java compiler, and then convert the Class file to a Cap file using a conversion tool provided by Java Card, load it into the chip, and execute it by Java Card virtual machine. There are problems with the poor execution performance of the Java Card instruction set based on the operand stack compared to the bytecode of the register-based instruction set.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

Принимая во внимание недостатки, существующие в предшествующем уровне техники, задача настоящего изобретения заключается в обеспечении сокращенного набора команд байт-кода микрооперационной системы и устройства с ограниченными ресурсами, такого как интеллектуальные SE, защищенные микросхемы MCU, которые могут быть использованы с различными объектно-ориентированными и архитектурно-независимыми программами, чтобы максимально уменьшить размер байт-кода, что может не только уменьшить требования к памяти микросхемы для постоянного хранения, но и повысить эффективность выполнения кода.Taking into account the shortcomings existing in the prior art, the object of the present invention is to provide a reduced set of bytecode instructions of a micro-operating system and a resource-limited device such as intelligent SE, secure MCU chips, which can be used with various object-oriented and architecture-independent programs to minimize the size of the bytecode, which can not only reduce the memory requirements of the chip for permanent storage, but also improve the efficiency of code execution.

Для решения вышеуказанной задачи техническое решение, принятое в настоящем изобретении, заключается в следующем:To solve the above problem, the technical solution adopted in the present invention is as follows:

сокращенный набор команд байт-кода микрооперационной системы, включающий в себя:a reduced set of bytecode instructions for a microoperating system, including:

первую команду, причем первая команда содержит код операции, при этом информация о параметрах первой команды выражена имплицитно в коде операции;the first command, where the first command contains the operation code, and the information about the parameters of the first command is expressed implicitly in the operation code;

вторую команду, которая представляет собой высокочастотную команду, имеющую множество форматов команд;the second command, which is a high-frequency command that has many command formats;

третью команду, которая содержит команду, имеющую различные форматы команд на основе различного количества параметров;the third command, which contains a command that has different command formats based on a different number of parameters;

четвертую команду, которая содержит команду часто используемого типа данных и команду редко используемого типа данных, причем команда часто используемого типа данных имеет множество форматов команд, а команда редко используемого типа данных имеет один формат команд;a fourth command that contains a frequently used data type command and a rarely used data type command, wherein the frequently used data type command has a plurality of command formats and the rarely used data type command has one command format;

пятую команду, которая представляет собой команду, имеющую однобайтовый индекс набора констант;the fifth command, which is a command that has a one-byte index of a set of constants;

шестую команду, которая представляет собой макрокоманду.the sixth command, which is a macro command.

Кроме того, в сокращенном наборе команд, как описано выше, первая команда содержит:Additionally, in the reduced command set as described above, the first command contains:

команду, которая имплицитно включает как операнд, так и номер регистра в коде операции;an instruction that implicitly includes both an operand and a register number in the opcode;

команду, которая имплицитно включает номер регистра в коде операции;an instruction that implicitly includes a register number in the opcode;

команду, которая имплицитно включает константный операнд в коде операции;an instruction that implicitly includes a constant operand in the opcode;

команду доступа к элементу массива, которая имплицитно включает тип элемента массива в коде операции;an array element access command that implicitly includes the array element type in the opcode;

команду, которая имплицитно включает тип и параметры вызова метода в коде операции.a command that implicitly includes the type and parameters of the method call in the opcode.

Кроме того, в сокращенном наборе команд, как описано выше, вторая команда содержит:Additionally, in the reduced command set as described above, the second command contains:

часто используемую команду арифметических операций, имеющую множество форматов операций;a frequently used arithmetic operation command that has many operation formats;

команду доступа к элементу массива в формате 4-разрядного регистра;command to access an array element in 4-bit register format;

команду создания массива, которая имплицитно включает тип элемента массива в коде операции;an array creation command that implicitly includes the array element type in the opcode;

команды ветвления, имеющую множество форматов команд на основе равных и неравных результатов сравнения.branching instructions, which have a variety of instruction formats based on equal and unequal comparison results.

Кроме того, в сокращенном наборе команд, как описано выше, третья команда содержит:Additionally, in the reduced command set as described above, the third command contains:

команду вызова статического метода, имеющую различные форматы команд, на основе различного количества параметров;a static method call command that has different command formats based on a different number of parameters;

команду вызова виртуального метода, имеющую различные форматы команд, на основе различного количества параметров;a virtual method call command that has different command formats based on a different number of parameters;

команду вызова метода частного экземпляра, имеющую различные форматы команд, на основе различного количества параметров.private instance method invocation command, which has different command formats based on different number of parameters.

Кроме того, в сокращенном наборе команд, как описано выше, четвертая команда содержит:Additionally, in the reduced command set as described above, the fourth command contains:

команду часто используемых типов данных, включающую в себя команду коротких типов данных;the frequently used data types command, which includes the short data types command;

команду редко используемых типов данных, включающую в себя команду типов данных int.the rarely used data types command, which includes the int data types command.

Кроме того, в сокращенном наборе команд, как описано выше, пятая команда содержит:Additionally, in the reduced command set as described above, the fifth command contains:

команду вызова статического метода, имеющую однобайтовый индекс набора констант;a static method call command that has a one-byte index into a set of constants;

команду вызова виртуального метода, имеющую с однобайтовый индекс набора констант;a virtual method call command that has a one-byte index into a set of constants;

команду доступа к статическому домену, имеющую однобайтовый индекс набора констант;a static domain access command that has a one-byte index into a set of constants;

команду доступа к домену экземпляра, имеющую однобайтовый индекс набора констант.an instance domain access command that has a one-byte index into a set of constants.

Кроме того, в сокращенном наборе команд, как описано выше, шестая команда содержит:Additionally, in the reduced command set as described above, the sixth command contains:

макрокоманду, сформированную на основе замены команды вызова статического метода;a macro command formed on the basis of replacing the static method call command;

макрокоманду, сформированную на основе объединения множества смежных команд.a macro command formed by combining a set of related commands.

Устройство с ограниченными ресурсами, причем на устройстве с ограниченными ресурсами запущена виртуальная машина, причем виртуальная машина выполнена с возможность исполнения сокращенного набора команд по любому из пп. 1-7.A device with limited resources, wherein a virtual machine is running on the device with limited resources, wherein the virtual machine is designed with the ability to execute a reduced set of commands according to any of paragraphs 1-7.

Положительными эффектами настоящего изобретения являются: в настоящем изобретении разработан набор команд виртуальной машины на основе регистра для устройств с ограниченными ресурсами, таких как интеллектуальные SE, защищенные микросхемы MCU, которые могут быть использованы с различными объектно-ориентированными и архитектурно-независимыми программами, чтобы максимально уменьшить размер байт-кода, что может не только уменьшить требования к памяти микросхемы для постоянного хранения, но и повысить эффективность выполнения кода.The positive effects of the present invention are: the present invention provides a register-based virtual machine instruction set for resource-constrained devices such as intelligent SEs, secure MCU chips, which can be used with various object-oriented and architecture-independent programs to reduce the size of bytecode as much as possible, which can not only reduce the memory requirements of the chip for persistent storage, but also improve the efficiency of code execution.

Краткое описание чертежейBrief description of the drawings

На фигуре проиллюстрирована схематическая диаграмма сокращенного набора команд байт-кода микрооперационной системы согласно варианту осуществления настоящего изобретения.The figure illustrates a schematic diagram of a reduced instruction set of a bytecode micro-operating system according to an embodiment of the present invention.

Подробное описание вариантов осуществленияDetailed description of embodiments

Настоящее изобретение более подробно описано ниже в сочетании с прилагаемыми чертежами и конкретными вариантами осуществления.The present invention is described in more detail below in conjunction with the accompanying drawings and specific embodiments.

Команды состоят из кода операции длиной в байт, определяющую операцию, которая должна быть выполнена, за которой следует ноль или более операндов, представляющих значение, с которым необходимо работать. Каждая ячейка в описании формата команды представляет собой байт.Регистр в команде состоит из 16 битов, которые могут представлять булевый, байтовый, короткий, ссылочный тип и обратный адрес, тип int требует двух последовательно пронумерованных пар регистров. Нулевая ссылка представляет собой значение короткого типа 0, то есть (object) null=(short) 0. Последние несколько регистров в кадре стека вызова методов используются для передачи параметров методов. В настоящем изобретении разработан набор команд виртуальной машины TGoMOS на основе регистра (здесь и далее называемый сокращенным набором команд), предназначенный для устройств с ограниченными ресурсами, таких как интеллектуальные SE, защищенные микросхемы MCU, которые могут быть использованы с различными объектно-ориентированными и архитектурно-независимыми программами, чтобы максимально уменьшить размер байт-кода, что может не только уменьшить требования к памяти микросхемы для постоянного хранения, но и повысить эффективность выполнения кода.Instructions consist of a byte-long opcode that specifies the operation to be performed, followed by zero or more operands representing the value to be operated on. Each cell in the instruction format description represents a byte. A register in an instruction consists of 16 bits that can represent a boolean, byte, short, reference type, and return address; the int type requires two consecutively numbered pairs of registers. The null reference represents the value of the short type 0, i.e. (object) null = (short) 0. The last few registers in the method call stack frame are used to pass method parameters. The present invention provides a register-based TGoMOS virtual machine instruction set (hereinafter referred to as a reduced instruction set) for resource-constrained devices such as intelligent SEs, secure MCUs, which can be used with various object-oriented and architecture-independent programs to reduce the size of bytecode as much as possible, which can not only reduce the memory requirement of the chip for persistent storage, but also improve the efficiency of code execution.

Как показано на фиг. 1, вариант осуществления настоящего изобретения обеспечивает сокращенный набор команд для байт-кода микрооперационной системы, причем сокращенный набор команд содержит: первую команду, вторую команду, третью команду, четвертую команду, пятую команду и шестую команду.As shown in Fig. 1, an embodiment of the present invention provides a reduced instruction set for a bytecode of a micro-operating system, wherein the reduced instruction set comprises: a first instruction, a second instruction, a third instruction, a fourth instruction, a fifth instruction, and a sixth instruction.

Первая команда состоит из кода операции, при этом информация о параметрах первой команды выражена имплицитно в коде операции. Первая команда включает в себя:The first command consists of an operation code, and the information about the parameters of the first command is expressed implicitly in the operation code. The first command includes:

a. команду, которая имплицитно включает как операнд, так и номер регистра в коде операции, например команду присваивания констант в табл. 1 ниже.a. An instruction that implicitly includes both an operand and a register number in the opcode, such as the constant assignment instruction in Table 1 below.

Таблица 1Table 1 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance opop const-0/r0const-0/r0 r0=0r0=0 const-0/r1const-0/r1 r1=0r1=0 const-0/r2const-0/r2 r2=0r2=0 const-0/r3const-0/r3 r3=0r3=0 const-0/r4const-0/r4 r4=0r4=0 const-1/r0const-1/r0 r0=1r0=1 const-1/r1const-1/r1 r1=1r1=1 const-1/r2const-1/r2 r2=1r2=1 const-1/r3const-1/r3 r3=1r3=1 const-1/r4const-1/r4 r4=1r4=1 const-2/r0const-2/r0 r0=2r0=2 const-2/r1const-2/r1 r1=2r1=2 const-2/r2const-2/r2 r2=2r2=2 const-2/r3const-2/r3 r3=2r3=2 const-2/r4const-2/r4 r4=2r4=2 const-3/r0const-3/r0 r0=3r0=3 const-3/r1const-3/r1 r1=3r1=3 const-3/r2const-3/r2 r2=3r2=3 const-3/r3const-3/r3 r3=3r3=3 const-3/r4const-3/r4 r4=3r4=3 const-4/r0const-4/r0 r0=4r0=4 const-4/r1const-4/r1 r1=4r1=4 const-4/r2const-4/r2 r2=4r2=4 const-4/r3const-4/r3 r3=4r3=4 const-4/r4const-4/r4 r4=4r4=4

Из табл. 1 видно, что присвоение констант является очень частой операцией, и использование вышеуказанного кодирования может значительно сократить длину байт-кода способа.From Table 1 it can be seen that the assignment of constants is a very frequent operation, and the use of the above encoding can significantly reduce the length of the bytecode of the method.

b. Команду, которая имплицитно включает номер регистра в коде операции, такую как команда присваивания константы в Табл. 2, команда доступа к статическому домену в Табл. 3, необъектная команда результата, вызываемая методом возврата в Табл. 4, команда результата ссылки на объект, вызываемая методом в Табл. 5, и команда доступа к члену массива в Табл. 6.b. An instruction that implicitly includes a register number in the opcode, such as the constant assignment instruction in Table 2, the static domain access instruction in Table 3, the non-object result instruction called by the return method in Table 4, the object reference result instruction called by the method in Table 5, and the array member access instruction in Table 6.

Таблица 2Table 2 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AAop AA const-c8/r0AAconst-c8/r0AA r0/1/2/3/4/5=AA
Символ AA расширен до 16 бит
r0/1/2/3/4/5=AA
AA symbol extended to 16 bits
const-c8/r1 AAconst-c8/r1 AA const-c8/r2 AAconst-c8/r2 AA const-c8/r3 AAconst-c8/r3 AA const-c8/r4 AAconst-c8/r4 AA const-c8/r5 AAconst-c8/r5 AA

Таблица 3Table 3 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AAop AA getstatic-o/r0 AAgetstatic-o/r0 AA Возвращает значение статического поля ссылок в регистр r0-r4
AA: Индекс набора констант для статических полей
Returns the value of the static reference field to register r0-r4
AA: Index of constant set for static fields
getstatic-o/r1 AAgetstatic-o/r1 AA getstatic-o/r2 AAgetstatic-o/r2 AA getstatic-o/r3 AAgetstatic-o/r3 AA getstatic-o/r4 AAgetstatic-o/r4 AA

Таблица 4Table 4 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance opop mv-r/r0mv-r/r0 Перемещают необъектный результат в виде одного слова самого последнего вызова метода в регистры r0-r4
Эта команда должна следовать за вызовом метода.
Moves the non-object single word result of the most recent method call into registers r0-r4
This command must follow the method call.
mv-r/r1 mv-r/r1 mv-r/r2mv-r/r2 mv-r/r3mv-r/r3 mv-r/r4mv-r/r4

Таблица 5Table 5 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance opop mv-ro/r0mv-ro/r0 Перемещают необъектный результат самого последнего вызова метода в регистры r0-r1
Эта команда должна следовать за вызовом метода.
Moves the non-object result of the most recent method call into registers r0-r1
This command must follow the method call.
mv-ro/r1mv-ro/r1

Таблица 6Table 6 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op A | Bop A | B getarray-b/r0 rA rB
getarray-b/r1 rA rB
getarray-b/r2 rA rB
getarray-b/r3 rA rB
getarray-b/r4 rA rB
getarray-b/r5 rA rB
getarray-b/r0 rA rB
getarray-b/r1 rA rB
getarray-b/r2 rA rB
getarray-b/r3 rA rB
getarray-b/r4 rA rB
getarray-b/r5 rA rB
r0-r5: Возвращаемое значение
rA: Ссылка на массив, 4-битный регистр
rB: Индекс элемента, 4-битный регистр
r0-r5: Return value
rA: Array reference, 4-bit register
rB: Element index, 4-bit register

c. команду, которая имплицитно включает константный операнд в коде операции;c. an instruction that implicitly includes a constant operand in the opcode;

d. команду доступа к элементу массива, которая имплицитно включает тип элемента массива в коде операции;d. an array element access command that implicitly includes the array element type in the opcode;

e. команду, которая имплицитно включает тип и параметры вызова метода в коде операции.e. a command that implicitly includes the type and parameters of the method call in the opcode.

Сокращенный набор команд по настоящему изобретению дополнительно содержит вторую команду, и вторая команда представляет собой высокочастотную команду, имеющую множество форматов команд. Вторая команда включает в себя:The reduced instruction set of the present invention further comprises a second instruction, and the second instruction is a high-frequency instruction having a plurality of instruction formats. The second instruction includes:

a. часто используемую команду арифметических операций, имеющую множество форматов операций, такую как команда операции сложения в табл. 7, команда операции AND в табл. 8.a. A frequently used arithmetic operation command that has many operation formats, such as the addition operation command in Table 7, the AND operation command in Table 8.

Таблица 7Table 7 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op A | Bop A | B add/2r rA rBadd/2r rA rB rA=rA+rBrA=rA+rB op A | Bop A | B add-c4/1r rA Badd-c4/1r rA B rA=rA+BrA=rA+B op A | B CCop A | B CC add-c8rA rB CCadd-c8rA rB CC rA=rB+CCrA=rB+CC op AA B | Cop AA B | C add/R44 rAA rB rCadd/R44 rAA rB rC rAA=rB+rCrAA=rB+rC op AA BB CCop AA BB CC добавить rAA rBB rCCadd rAA rBB rCC rAA=rBB+rCCrAA=rBB+rCC op A | Bop A | B iadd/2r rA rBiadd/2r rA rB rA=rA+rBrA=rA+rB op A | B CCop A | B CC iadd-c8rA rB CCiadd-c8rA rB CC rA=rB+CCrA=rB+CC op A | B CC h CC l op A | B CC h CC l iadd-c16rA rB CCCCiadd-c16rA rB CCCC rA=rB+CCCCrA=rB+CCCC op AA BB CCop AA BB CC iadd rAA rBB rCCiadd rAA rBB rCC rAA=rBB+rCCrAA=rBB+rCC

Поскольку операции надстройки более распространены, предоставление множества форматов операций может уменьшить размер байт-кода. По сравнению с 4-байтовой длиной команды add rAA rBB rCC/iadd rAA rBB rCC использование других команд может уменьшить размер 1 или 2 байта.Because add operations are more common, providing multiple operation formats can reduce the bytecode size. Compared to the 4-byte length of the add rAA rBB rCC/iadd rAA rBB rCC instruction, using other instructions can reduce the size by 1 or 2 bytes.

Таблица 8Table 8 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op A | Bop A | B и/2r rA rBand/2r rA rB rA=rA & rBrA=rA & rB op A | Bop A | B and-c4rA, Band-c4rA, B rA=rA & BrA=rA & B op A | B op A | B s2b2s rA rBs2b2s rA rB rA=rB & 0x00FFrA=rB & 0x00FF op A | B CCop A | B CC and-c8rA, rB, CCand-c8rA, rB, CC rA=rB & CCrA=rB & CC op AA B | Cop AA B | C and/R44 rAA rB rCand/R44 rAA rB rC rAA=rB & rCrAA=rB & rC op A | B CC h CC l op A | B CC h CC l and-c16rA rB CCCCand-c16rA rB CCCC rA=rB и CCCCrA=rB and CCCC op AA BB CCop AA BB CC and rAA rBB rCCand rAA rBB rCC rAA=rBB & rCCrAA=rBB & rCC op A | Bop A | B iand/2r rA rBiand/2r rA rB rA=rA & rBrA=rA & rB op A | B CCop A | B CC iand-c8rA, rB, CCiand-c8rA, rB, CC rA=rB & CCrA=rB & CC op A | B CC h CC l op A | B CC h CC l iand-c16rA rB CCCCiand-c16rA rB CCCC rA=rB и CCCCrA=rB and CCCC op AA BB CCop AA BB CC iand rAA rBB rCCiand rAA rBB rCC rAA=rBB & rCCrAA=rBB & rCC

Поскольку операции более распространены, предоставление множества форматов операций может уменьшить размер байт-кода. По сравнению с 4-байтовой длиной команды and rAA rBB rCC/iand rAA rBB rCC использование других команд может уменьшить размер 1 или 2 байта. Например, третья строка команды s2b2s rA rB имплицитно включает операнд 0xFF в коде операции, уменьшая длину команды.Because operations are more common, providing multiple operation formats can reduce the bytecode size. Compared to the 4-byte length of the and rAA rBB rCC/iand rAA rBB rCC instruction, using other instructions can reduce the size by 1 or 2 bytes. For example, the third line of the s2b2s rA rB instruction implicitly includes the 0xFF operand in the opcode, reducing the instruction length.

b. команду доступа к элементу массива в формате 4-разрядного регистра, как показано в табл. 9.b. an array element access command in 4-bit register format, as shown in Table 9.

Таблица 9Table 9 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA B | Cop AA B | C getarray-o/R44 rAA rB rCgetarray-o/R44 rAA rB rC rAA: Возвращает или задает значение 8-битного регистра
rB: Ссылка на массив, 4-битный регистр
rC: Индекс элемента, 4-битный регистр
rAA: Returns or sets the value of an 8-bit register
rB: Array reference, 4-bit register
rC: Element index, 4-bit register
op AA BB CCop AA BB CC getarray-b rAA rBB rCCgetarray-b rAA rBB rCC rAA: Возвращает или задает значение 8-битного регистра
rBB: Ссылка на массив, 8-битный регистр
rCC: Индекс элемента, 8-битный регистр
rAA: Returns or sets the value of an 8-bit register
rBB: Array reference, 8-bit register
rCC: Element index, 8-bit register
getarray-s rAA rBB rCCgetarray-s rAA rBB rCC getarray-o rAA rBB rCCgetarray-o rAA rBB rCC putarray-b rAA rBB rCCputarray-b rAA rBB rCC putarray-s rAA rBB rCCputarray-s rAA rBB rCC putarray-o rAA rBB rCCputarray-o rAA rBB rCC op AA BB CCop AA BB CC igetarray rAA rBB rCCigetarray rAA rBB rCC rAA: Возвращает или задает значение 8-битной регистровой пары
rBB: Ссылка на массив, 8-битный регистр
rCC: Индекс элемента, 8-битный регистр
rAA: Returns or sets the value of an 8-bit register pair.
rBB: Array reference, 8-bit register
rCC: Element index, 8-bit register

Из табл. 9 видно, что команды в формате 4-разрядного регистра на один байт меньше команд в 8-битном регистре, а 4-разрядный регистр для часто используемых команд (таких как getarray-o) может значительно уменьшить длину байт-кода.Table 9 shows that 4-bit register format instructions are one byte smaller than 8-bit register format instructions, and a 4-bit register for frequently used instructions (such as getarray-o) can significantly reduce the bytecode length.

c. команду создания массива, которая имплицитно включает тип элемента массива в коде операции, как показано в табл. 10.c. an array creation command that implicitly includes the array element type in the opcode, as shown in Table 10.

Таблица 10Table 10 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op A | Bop A | B newarray-b rA rBnewarray-b rA rB Создание массива типов байтов
rA: Хранение ссылки на новые массивы
rB: Количество элементов массива
Creating an array of byte types
rA: Store reference to new arrays
rB: Number of array elements
op AA B | Cop AA B | C newarray rAA rB C newarray rAA rB C Создание булевого, короткого, int и основного типа массива
rAA: Хранение ссылки на новые массивы
rB: Количество элементов массива
C: тип массива, значение которого приведено в таблице ниже
Creating boolean, short, int and basic array types
rAA: Storing reference to new arrays
rB: Number of array elements
C: An array type whose value is given in the table below
op CC h CC l A | Bop CC h CC l A | B newarray-o rA rB CCCC newarray-o rA rB CCCC Создать массив ссылочного типа
rA: Хранение ссылки на новые массивы
rB: Количество элементов массива
CCCC: Индекс набора констант элемента массива ссылочного типа
Create a reference type array
rA: Store reference to new arrays
rB: Number of array elements
CCCC: Index of the constant set of an array element of a reference type

Из табл. 10 видно, что первая строка команды newarray-b rA rB используется чаще, а тип элемента (байт) элемента массива имплицитно включен в коде операции, который может быть уменьшен на 1 или 2 байта по сравнению с двумя другими командами.From Table 10, it can be seen that the first line of the command newarray-b rA rB is used more frequently, and the element type (byte) of the array element is implicitly included in the opcode, which can be reduced by 1 or 2 bytes compared to the other two commands.

d. Основываясь на равных и неравных результатах сравнения, команды ветвления, имеющие множество форматов команд, включая команды ветвления, которые сравниваются со значениями 0, такими как в табл. 11, и команды ветвления, которые сравниваются с двумя операндами, такими как в табл. 12.d. Based on equal and unequal comparison results, branch instructions have a variety of instruction formats, including branch instructions that compare with 0 values, such as those in Table 11, and branch instructions that compare with two operands, such as those in Table 12.

Таблица 11Table 11 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA BBop AA BB ifeqz rAA BBifeqz rAA BB rAA: 8-битный регистр для сравнения
BB: 8-битное смещение ветви со знаком
rAA: 8-bit register for comparison
BB: 8-bit signed branch offset
ifnez rAA BBifnez rAA BB op AA BB h BB l op AA BB h BB l ifeqz/t16 rAA BBBBifeqz/t16 rAA BBBB rAA: 8-битный регистр для сравнения
BB: 16-битное смещение ветви со знаком
rAA: 8-bit register for comparison
BB: 16-bit signed branch offset
ifnez/t16 rAA BBBBifnez/t16 rAA BBBB

Таблица 12Table 12 op A | B CCop A | B CC ifeq rA rB CCifeq rA rB CC rA: Первый регистр для сравнения
rB: Второй регистр для сравнения
CC: 8-битное смещение ветви со знаком
rA: First register to compare
rB: Second register to compare
CC: 8-bit signed branch offset
ifne rA rB CCifne rA rB CC op A | B CC h CC l op A | B CC h CC l ifeq/t16 rA rB CCCCifeq/t16 rA rB CCCC CCCC: 16-битное смещение ветви со знаком
Другие команды, аналогичные вышеуказанной команде
CCCC: 16-bit signed branch offset
Other commands similar to the above command
ifne/t16 rA rB CCCCifne/t16 rA rB CCCC

В табл. 12 выше 8-битная команда смещения уменьшает длину одного байта.In Table 12 above, the 8-bit offset instruction reduces the length of one byte.

Сокращенный набор команд по настоящему изобретению дополнительно включает в себя третью команду, которая содержит команду, имеющую другой формат команд на основе различного количества параметров. Третья команда включает в себя:The reduced command set of the present invention further includes a third command that contains a command that has a different command format based on a different number of parameters. The third command includes:

a. команду вызова статического метода, имеющую различные форматы команд, на основе различного количества параметров, такую как в табл. 13;a. a static method call command that has different command formats based on different numbers of parameters, such as in Table 13;

b. команду вызова виртуального метода, имеющую различные форматы команд, на основе различного количества параметров, такую как в табл. 14;b. a virtual method call command having different command formats based on different numbers of parameters, such as in Table 14;

c. команду вызова метода частного экземпляра, имеющую различные форматы команд, на основе различного количества параметров.c. a private instance method invocation command that has different command formats based on different numbers of parameters.

Таблица 13Table 13 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA B | Cop AA B | C invstatic/01 {rC} AAinvstatic/01 {rC} AA 0 или 1 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=1 {rC}
B=0 {}
0 or 1 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=1 {rC}
B=0 {}
op AA B | C D | Eop AA B | C D | E invstatic/23 {rC rD rE} AAinvstatic/23 {rC rD rE} AA 2 или 3 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
2 or 3 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
op AA B | C D | E F | Gop AA B | C D | E F | G invstatic/45 {rC rD rE rF rG} AAinvstatic/45 {rC rD rE rF rG} AA 4 или 5 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
op AA h AA l B | Cop AA h AA l B | C invstatic/01cp16 {rC} AAAAinvstatic/01cp16{rC}AAAA 0 или 1 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=1 {rC}
B=0 {}
0 or 1 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=1 {rC}
B=0 {}
op AA h AA l B | C D | Eop AA h AA l B | CD | E invstatic/23cp16 {rC rD rE} AAAAinvstatic/23cp16 {rC rD rE} AAAA 2 или 3 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
2 or 3 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
op AA h AA l B | C D | E F | Gop AA h AA l B | CD | EF | G invstatic/45cp16 {rC rD rE rF rG} AAAAinvstatic/45cp16 {rC rD rE rF rG} AAAA 4 или 5 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}

Таблица 14Table 14 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA B | C D | Eop AA B | C D | E invvirtual/13 {rC rD rE} AAinvvirtual/13 {rC rD rE} AA 1 или 3 параметры регистра
AA: Индекс набора констант для виртуальных методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
B=1 {rC}
1 or 3 register parameters
AA: Index of the set of constants for virtual methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
B=1 {rC}
op AA B | C D | E F | Gop AA B | C D | E F | G invvirtual/45 {rC rD rE rF rG} AAinvvirtual/45 {rC rD rE rF rG} AA 4 или 5 параметры регистра
AA: Индекс набора констант для виртуальных методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AA: Index of the set of constants for virtual methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}

Из табл. 13-14 видно, что для вызовов способа без параметров или с относительно небольшим количеством параметров вышеупомянутые команды кодирования являются относительно короткими, в частности, такие вызовы используются чаще, и размер байт-кода способа может быть значительно уменьшен.From Table 13-14 it can be seen that for method calls without parameters or with a relatively small number of parameters, the above-mentioned encoding instructions are relatively short, in particular, such calls are used more often, and the bytecode size of the method can be significantly reduced.

Сокращенный набор команд по настоящему изобретению дополнительно включает в себя четвертую команду, которая включает в себя команду часто используемого типа данных и команду редко используемого типа данных, при этом команда часто используемого типа данных имеет множество форматов команд, а команда редко используемого типа данных имеет формат команд. Часто используемые типы данных команды включают в себя короткие типы данных команды, а редко используемые типы данных команды включают в себя типы данных int команды.The reduced instruction set of the present invention further includes a fourth instruction that includes an instruction of a frequently used data type and an instruction of a rarely used data type, wherein the instruction of the frequently used data type has a plurality of instruction formats, and the instruction of the rarely used data type has an instruction format. The frequently used instruction data types include short instruction data types, and the rarely used instruction data types include int instruction data types.

Сокращенный набор команд по настоящему изобретению дополнительно содержит пятую команду, которая представляет собой команду, имеющую однобайтовый индекс набора констант.Пятая команды включает в себя:The reduced instruction set of the present invention further comprises a fifth instruction, which is an instruction having a one-byte index of a set of constants. The fifth instruction includes:

a. команду вызова виртуального метода, имеющую с однобайтовый индекс набора констант, как показано в табл. 15;a. a virtual method call instruction that has a one-byte index into a set of constants, as shown in Table 15;

b. команду вызова виртуального метода, имеющую с однобайтовый индекс набора констант,как показано в табл. 16;b. a virtual method call instruction having a one-byte index into the constant set, as shown in Table 16;

c. команду доступа к статическому домену, имеющую однобайтовый индекс набора констант, как показано в табл. 17;c. a static domain access command that has a one-byte index into a set of constants, as shown in Table 17;

d. команду доступа к домену экземпляра, имеющую однобайтовый индекс набора констант, как показано в табл. 18.d. an instance domain access command that has a one-byte index into a set of constants, as shown in Table 18.

Таблица 15Table 15 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA B | Cop AA B | C invstatic/01 {rC} AAinvstatic/01 {rC} AA 0 или 1 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=1 {rC}
B=0 {}
0 or 1 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=1 {rC}
B=0 {}
op AA B | C D | Eop AA B | C D | E invstatic/23 {rC rD rE} AAinvstatic/23 {rC rD rE} AA 2 или 3 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
2 or 3 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
op AA B | C D | E F | Gop AA B | C D | E F | G invstatic/45 {rC rD rE rF rG} AAinvstatic/45 {rC rD rE rF rG} AA 4 или 5 параметры регистра
AA: Индекс набора констант для статических методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AA: Index of constant set for static methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
op AA h AA l B | Cop AA h AA l B | C invstatic/01cp16 {rC} AAAAinvstatic/01cp16{rC}AAAA 0 или 1 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=1 {rC}
B=0 {}
0 or 1 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=1 {rC}
B=0 {}
op AA h AA l B | C D | Eop AA h AA l B | CD | E invstatic/23cp16 {rC rD rE} AAAAinvstatic/23cp16 {rC rD rE} AAAA 2 или 3 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
2 or 3 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
op AA h AA l B | C D | E F | Gop AA h AA l B | CD | EF | G invstatic/45cp16 {rC rD rE rF rG} AAAAinvstatic/45cp16 {rC rD rE rF rG} AAAA 4 или 5 параметры регистра
AAAA: Индекс набора констант для статических методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AAAA: Index of constant set for static methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}

Таблица 16Table 16 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AA B | C D | Eop AA B | C D | E invvirtual/13 {rC rD rE} AAinvvirtual/13 {rC rD rE} AA 1 или 3 параметры регистра
AA: Индекс набора констант для виртуальных методов
Количество параметров B
B=3 {rC, rD, rE}
B=2 {rC, rD}
B=1 {rC}
1 or 3 register parameters
AA: Index of the set of constants for virtual methods
Number of parameters B
B=3 {rC, rD, rE}
B=2 {rC, rD}
B=1 {rC}
op AA B | C D | E F | Gop AA B | C D | E F | G invvirtual/45 {rC rD rE rF rG} AAinvvirtual/45 {rC rD rE rF rG} AA 4 или 5 параметры регистра
AA: Индекс набора констант для виртуальных методов
Количество параметров B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}
4 or 5 register parameters
AA: Index of the set of constants for virtual methods
Number of parameters B
B=5 {rC, rD, rE, rF, rG}
B=4 {rC, rD, rE, rF}

Таблица 17Table 17 Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op AAop AA getstatic-o/r0 AAgetstatic-o/r0 AA Возвращает значение статического поля ссылок в регистр r0-r4
AA: Индекс набора констант для статических полей
Returns the value of the static reference field to register r0-r4
AA: Index of constant set for static fields
getstatic-o/r1 AAgetstatic-o/r1 AA getstatic-o/r2 AAgetstatic-o/r2 AA getstatic-o/r3 AAgetstatic-o/r3 AA getstatic-o/r4 AAgetstatic-o/r4 AA op BB AAop BB AA getstatic-o/R8 rAA BBgetstatic-o/R8 rAA BB rAA: Возвращает значение статического поля, 8-битный регистр
BB: Индекс набора констант для статических полей
rAA: Returns the value of a static field, 8-bit register
BB: Index of constant set for static fields
op BB h BB l AAop BB h BB l AA getstatic-b/cp16rAA BBBBgetstatic-b/cp16rAA BBBB rAA: Возвращает или задает подлежащее установке значение статического поля, 8-битный регистр
BBBB: Индекс набора констант для статических полей
rAA: Returns or sets the value to be set of a static field, 8-bit register
BBBB: Index of constant set for static fields
getstatic-s/cp16rAA BBBBgetstatic-s/cp16rAA BBBB getstatic-o/cp16rAA BBBBgetstatic-o/cp16rAA BBBB putstatic-b/cp16rAA BBBBputstatic-b/cp16rAA BBBB putstatic-s/cp16rAA BBBBputstatic-s/cp16rAA BBBB putstatic-o/cp16rAA BBBBputstatic-o/cp16rAA BBBB op BB h BB l AAop BB h BB l AA igetstatic rAA BBBBigetstatic rAA BBBB rAA: Возвращает или задает подлежащее установке значение статического поля, 8-битная регистровая пара
BBBB: Индекс набора констант для статических полей
rAA: Returns or sets the value of the static field to be set, an 8-bit register pair
BBBB: Index of constant set for static fields

Таблица 18Table 18 ФорматFormat МнемоникаMnemonics ПредставлениеPerformance op CC A | Bop CC A | B getfield-o rA rB CC getfield-o rA rB CC rA: Возвращает или задает значение поля экземпляра
rB: Регистр объектов
CC: Индект набора констант домена экземпляра
rA: Gets or sets the value of an instance field
rB: Object register
CC: Instance domain constant set index
op CC h CC l A | Bop CC h CC l A | B getfield-b/cp16rA rB CCCCgetfield-b/cp16rA rB CCCC rA: Возвращает или задает значение поля экземпляра
rB: Регистр объектов
CCCC: Индект набора констант домена экземпляра
rA: Gets or sets the value of an instance field
rB: Object register
CCCC: Instance Domain Constant Set Index
getfield-s/cp16rA rB CCCCgetfield-s/cp16rA rB CCCC getfield-o/cp16rA rB CCCCgetfield-o/cp16rA rB CCCC putfield-b/cp16rA rB CCCCputfield-b/cp16rA rB CCCC putfield-s/cp16rA rB CCCCputfield-s/cp16rA rB CCCC putfield-o/cp16 rA rB CCCCputfield-o/cp16 rA rB CCCC op CC h CC l A | Bop CC h CC l A | B igetfield/cp16rA rB CCCCigetfield/cp16rA rB CCCC rA представляет собой регистровую пару, возвращает или задает подлежащее установке значение поля экземпляра
rB: Регистр объектов
CCCC: Индект набора констант домена экземпляра
rA is a register pair that returns or sets the value of the instance field to be set
rB: Object register
CCCC: Instance Domain Constant Set Index
iputfield/cp16rA rB CCCCiputfield/cp16rA rB CCCC

Из табл. 15-18 видно, что если можно использовать однобайтовый индекс набора констант, длина байт-кода может быть значительно уменьшена.From Table 15-18 it can be seen that if a single-byte index of the constant set can be used, the bytecode length can be significantly reduced.

Сокращенный набор команд по настоящему изобретению дополнительно включает в себя шестую команду, которая представляет собой макрокоманду. Шестая команда включает в себя макрокоманду, сформированную на основе замены команды вызова статического метода, и макрокоманду, сформированную на основе слияния множества соседних команд, как показано в табл. 19.The reduced instruction set of the present invention further includes a sixth instruction, which is a macroinstruction. The sixth instruction includes a macroinstruction formed on the basis of replacing a static method call instruction, and a macroinstruction formed on the basis of merging a plurality of adjacent instructions, as shown in Table 19.

Формат командыCommand format МнемоникаMnemonics ПредставлениеPerformance op0A BC DE op0A BC DE arrayCopy rA rB rC rD rE arrayCopy rA rB rC rD rE short arrayCopy(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException, TransactionException;
Значение каждого регистра:
rA: src
rB: srcOff
rC: dest
rD: destOff
rE: length
short arrayCopy(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException, TransactionException;
The meaning of each register:
rA:src
rB:srcOff
rC:dest
rD: destOff
rE: length
op0A BC DE op0A BC DE arrayCopyNonAtomic rA rB rC rD rE arrayCopyNonAtomic rA rB rC rD rE short arrayCopyNonAtomic(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException, SystemException;
Значение каждого регистра:
rA: src
rB: srcOff
rC: dest
rD: destOff
rE: length
short arrayCopyNonAtomic(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException, SystemException;
The meaning of each register:
rA:src
rB:srcOff
rC:dest
rD: destOff
rE: length
op A | B C | D op A | B C | D arrayFill rA rB rC rD arrayFill rA rB rC rD short arrayFill(byte[] bArray, short bOff, short bLen, byte bValue) throws ArrayIndexOutOfBoundsException, NullPointerException;
Значение каждого регистра:
rA: bArray
rB: bOff
rC: bLen
rD: bValue
short arrayFill(byte[] bArray, short bOff, short bLen, byte bValue) throws ArrayIndexOutOfBoundsException, NullPointerException;
The meaning of each register:
rA: bArray
rB: bOff
rC: bLen
rD: bValue
op A | B C | D op A | B C | D arrayFillNonAtomic rA rB rC rD arrayFillNonAtomic rA rB rC rD short arrayFillNonAtomic (byte[] bArray, short bOff, short bLen, byte bValue) throws ArrayIndexOutOfBoundsException, NullPointerException;
Значение каждого регистра:
rA: bArray
rB: bOff
rC: bLen
rD: bValue
short arrayFillNonAtomic (byte[] bArray, short bOff, short bLen, byte bValue) throws ArrayIndexOutOfBoundsException, NullPointerException;
The meaning of each register:
rA: bArray
rB: bOff
rC: bLen
rD: bValue
op0A BC DE op0A BC DE arrayCompare rA rB rC rD rEarrayCompare rA rB rC rD rE byte arrayCompare(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException;
Значение каждого регистра:
rA: src
rB: srcOff
rC: dest
rD: destOff
rE: length
byte arrayCompare(byte[] src, short srcOff, byte[] dest, short destOff, short length) throws ArrayIndexOutOfBoundsException, NullPointerException;
The meaning of each register:
rA:src
rB:srcOff
rC:dest
rD: destOff
rE: length
op0 | A B | C op0 | A B | C setShort rA rB rC setShort rA rB rC short setShort(byte[] bArray, short bOff, short sValue) throws TransactionException, NullPointerException, ArrayIndexOutOfBoundsException;
Значение каждого регистра:
rA: bArray
rB: bOff
rC: sValue
short setShort(byte[] bArray, short bOff, short sValue) throws TransactionException, NullPointerException, ArrayIndexOutOfBoundsException;
The meaning of each register:
rA: bArray
rB: bOff
rC:sValue
op A | Bop A | B makeShort rA rBmakeShort rA rB short makeShort (байт b1, байт b2)
Значение каждого регистра:
rA: b1
rB: b2
short makeShort (byte b1, byte b2)
The meaning of each register:
rA: b1
rB:b2
op A | B op A | B getShort rA rB getShort rA rB short getShort(byte[] bArray, short bOff) throws NullPointerException, ArrayIndexOutOfBoundsException
Значение каждого регистра:
rA: bArray
rB: bOff
short getShort(byte[] bArray, short bOff) throws NullPointerException, ArrayIndexOutOfBoundsException
The meaning of each register:
rA: bArray
rB: bOff
op A | B C | Dop A | B C | D const-c4/2rA rB C Dconst-c4/2rA rB C D rA=C rB=DrA=C rB=D op A | C BB DDop A | C BB DD const-c4c8 rA rBB C DDconst-c4c8 rA rBB C DD rA=C rBB=DDrA=C rBB=DD op AA BB CC DDop AA BB CC DD const-c8/2rAA rBB CC DDconst-c8/2rAA rBB CC DD rAA=CC rBB=DDrAA=CC rBB=DD op A | B C | Dop A | B C | D mv/2 rA rB rC rDmv/2 rA rB rC rD rA=rC, rB=rDrA=rC, rB=rD op A | B CCop A | B CC getarray-b/I rA rB CCgetarray-b/I rA rB CC rA: Возвращаемое значение
rB: Ссылка на массив, 4-битный регистр
CC: Индекс члена, 8-битный регистр без знака
rA: Return value
rB: Array reference, 4-bit register
CC: Member index, 8-bit unsigned register
op AA BB h BB l op AA BB h BB l invstatic/1c BBBB AAinvstatic/1c BBBB AA AA: Индекс набора констант для статических методов
BBBB: 16-битный параметр константы со знаком
AA: Index of constant set for static methods
BBBB: 16-bit signed constant parameter

Из табл.19 видно, что макрокоманды для замены статических методов не должны обеспечивать индекс набора констант, и поскольку частота таких вызовов статических методов относительно высока, замена соответствующими макрокомандами может значительно уменьшить размер байт-кода.Table 19 shows that macros for replacing static methods do not have to provide an index of the constant set, and since the frequency of such calls to static methods is relatively high, replacing them with appropriate macros can significantly reduce the size of the bytecode.

Набор команд виртуальной машины TGoMOS по настоящему изобретению представляет собой сокращенный набор команд, в табл. 20 ниже представлен краткий перечень набора команд байт-кода.The instruction set of the TGoMOS virtual machine of the present invention is a reduced instruction set, and Table 20 below provides a brief list of the bytecode instruction set.

Таблица 20Table 20 opop МнемоникаMnemonics opop МнемоникаMnemonics opop МнемоникаMnemonics opop МнемоникаMnemonics 00 nopnop 5252 mv-r/r3mv-r/r3 104104 ixorixor 156156 getstatic-o/R8getstatic-o/R8 11 const-0/r0const-0/r0 5353 mv-r/r4mv-r/r4 105105 ishlishl 157157 getstatic-b/cp16getstatic-b/cp16 22 const-0/r1const-0/r1 5454 mv-rmv-r 106106 ishrishr 158158 getstatic-s/cp16getstatic-s/cp16 33 const-0/r2const-0/r2 5555 mv-ro/r0mv-ro/r0 107107 iushriushr 159159 getstatic-o/cp16getstatic-o/cp16 44 const-0/r3const-0/r3 5656 mv-ro/r1mv-ro/r1 108108 gotogoto 160160 putstatic-b/cp16putstatic-b/cp16 55 const-0/r4const-0/r4 5757 mv-romv-ro 109109 goto/t16goto/t16 161161 putstatic-s/cp16putstatic-s/cp16 66 const-1/r0const-1/r0 5858 mv-emv-e 110110 icmpicmp 162162 putstatic-o/cp16putstatic-o/cp16 77 const-1/r1const-1/r1 5959 imvimv 111111 ifeqzifeqz 163163 igetstaticigetstatic 88 const-1/r2const-1/r2 6060 imv/R8 imv/R8 112112 ifnezifnez 164164 iputstaticiputstatic 99 const-1/r3const-1/r3 6161 imv-rimv-r 113113 ifeqz/t16ifeqz/t16 165165 newinstancenew instance 1010 const-1/r4const-1/r4 6262 return-vreturn-v 114114 ifnez/t16 ifnez/t16 166166 getfield-ogetfield-o 1111 const-2/r0const-2/r0 6363 return/r0return/r0 115115 ifltz/t16ifltz/t16 167167 getfield-b/cp16getfield-b/cp16 1212 const-2/r1const-2/r1 6464 return return 116116 ifgez/t16 ifgez/t16 168168 getfield-s/cp16getfield-s/cp16 1313 const-2/r2const-2/r2 6565 return-oreturn-o 117117 ifgtz/t16ifgtz/t16 169169 getfield-o/cp16getfield-o/cp16 1414 const-2/r3const-2/r3 6666 ireturnturn 118118 iflez/t16iflez/t16 170170 putfield-b/cp16putfield-b/cp16 1515 const-2/r4const-2/r4 6767 s2bs2b 119119 ifeqifeq 171171 putfield-s/cp16putfield-s/cp16 1616 const-3/r0const-3/r0 6868 s2is2i 120120 ifneifne 172172 putfield-o/cp16putfield-o/cp16 1717 const-3/r1const-3/r1 6969 i2si2s 121121 ifeq/t16ifeq/t16 173173 igetfield/cp16igetfield/cp16 1818 const-3/r2const-3/r2 7070 i2bi2b 122122 ifne/t16 ifne/t16 174174 iputfield/cp16iputfield/cp16 1919 const-3/r3const-3/r3 7171 add/2radd/2r 123123 iflt/t16iflt/t16 175175 invstatic/01invstatic/01 2020 const-3/r4const-3/r4 7272 add/R44add/R44 124124 ifge/t16 ifge/t16 176176 invstatic/23invstatic/23 2121 const-4/r0const-4/r0 7373 add-c4/1radd-c4/1r 125125 ifgt/t16ifgt/t16 177177 invstatic/45invstatic/45 2222 const-4/r1const-4/r1 7474 add-c8add-c8 126126 ifle/t16ifle/t16 178178 invstatic/01cp16invstatic/01cp16 2323 const-4/r2const-4/r2 7575 addadd 127127 packedswitchpacked switch 179179 invstatic/23cp16invstatic/23cp16 2424 const-4/r3const-4/r3 7676 subsub 128128 sparseswitchsparseswitch 180180 invstatic/45cp16invstatic/45cp16 2525 const-4/r4const-4/r4 7777 mulmul 129129 newarray-bnewarray-b 181181 invvirtual/13invvirtual/13 2626 const-c4const-c4 7878 divdiv 130130 newarraynewarray 182182 invvirtual/45invvirtual/45 2727 cosnt-c8/r0cosnt-c8/r0 7979 remrem 131131 newarray-onewarray-o 183183 invspecial/13invspecial/13 2828 cosnt-c8/r1cosnt-c8/r1 8080 iaddiadd 132132 fillarrayfillarray 184184 invspecial/45invspecial/45 2929 cosnt-c8/r2cosnt-c8/r2 8181 isubisub 133133 arraylengtharraylength 185185 invinterface/13invinterface/13 3030 cosnt-c8/r3cosnt-c8/r3 8282 imulimul 134134 getarray-b/r0getarray-b/r0 186186 invinterface/45invinterface/45 3131 cosnt-c8/r4cosnt-c8/r4 8383 idividiv 135135 getarray-b/r1getarray-b/r1 187187 invvirtual/rinvvirtual/r 3232 cosnt-c8/r5cosnt-c8/r5 8484 iremirem 136136 getarray-b/r2getarray-b/r2 188188 invstatic/rinvstatic/r 3333 const-c8 const-c8 8585 negneg 137137 getarray-b/r3getarray-b/r3 189189 invspecial/rinvspecial/r 3434 const/r0const/r0 8686 notnot 138138 getarray-b/r4getarray-b/r4 190190 invinterface/rinvinterface/r 3535 const/r1const/r1 8787 and/2rand/2r 139139 getarray-b/R44getarray-b/R44 191191 throwthrow 3636 const/r2const/r2 8888 and/R44and/R44 140140 getarray-o/R44getarray-o/R44 192192 instanceofinstanceof 3737 const/r3const/r3 8989 and-c4/1rand-c4/1r 141141 putarray-b/R44putarray-b/R44 193193 checkcastcheckcast 3838 const/r4const/r4 9090 and-c8and-c8 142142 putarray-o/R44putarray-o/R44 194194 arrayCopy arrayCopy 3939 const/r5const/r5 9191 s2b2ss2b2s 143143 getarray-bgetarray-b 195195 arrayCopyNonAtomic; arrayCopyNonAtomic; 4040 constconst 9292 andand 144144 getarray-sgetarray-s 196196 arrayFill arrayFill 4141 iconst-c4 iconst-c4 9393 or-c8or-c8 145145 getarray-ogetarray-o 197197 arrayFillNonAtomicarrayFillNonAtomic 4242 iconst-c8iconst-c8 9494 oror 146146 putarray-bputarray-b 198198 arrayComparearrayCompare 4343 iconst-c16 iconst-c16 9595 xor-c8xor-c8 147147 putarray-sputarray-s 199199 setShortsetShort 4444 iconst icons 9696 xorxor 148148 putarray-oputarray-o 200200 makeShortmakeShort 4545 mv mv 9797 shlshl 149149 igetarrayigetarray 201201 getShortgetShort 4646 mv/R8mv/R8 9898 shrshr 150150 iputarrayiputarray 202202 const-c4/2const-c4/2 4747 mv-omv-o 9999 ushrushr 151151 getstatic-o/r0getstatic-o/r0 203203 const-c4c8const-c4c8 4848 mv-o/R8mv-o/R8 100100 inegineg 152152 getstatic-o/r1getstatic-o/r1 204204 const-c8/2const-c8/2 4949 mv-r/r0mv-r/r0 101101 inotinot 153153 getstatic-o/r2getstatic-o/r2 205205 mv/2mv/2 5050 mv-r/r1mv-r/r1 102102 iandiand 154154 getstatic-o/r3getstatic-o/r3 206206 getarray-b/Igetarray-b/I 5151 mv-r/r2mv-r/r2 103103 iorior 155155 getstatic-o/r4getstatic-o/r4 207207 invstatic/1cinvstatic/1c

Вариант осуществления настоящего изобретения дополнительно обеспечивает устройство с ограниченными ресурсами, причем на устройстве с ограниченными ресурсами запущена виртуальная машина, и виртуальная машина используется для выполнения вышеупомянутого сокращенного набора команд.An embodiment of the present invention further provides a resource-constrained device, wherein a virtual machine is running on the resource-constrained device, and the virtual machine is used to execute the above-mentioned reduced set of instructions.

Набор команд виртуальной машины на основе регистра, разработанный в настоящем изобретении, используют для устройств с ограниченными ресурсами, таких как интеллектуальные SE, защищенные микросхемы MCU, которые могут быть использованы с различными объектно-ориентированными и архитектурно-независимыми программами, чтобы максимально уменьшить размер байт-кода, что может не только уменьшить требования к памяти микросхемы для постоянного хранения, но и повысить эффективность выполнения кода.The register-based virtual machine instruction set developed in the present invention is used for resource-constrained devices such as intelligent SE, secure MCU chips, which can be used with various object-oriented and architecture-independent programs to minimize the size of bytecode, which can not only reduce the memory requirement of the chip for persistent storage, but also improve the efficiency of code execution.

Чтобы проверить вышеуказанные полезные эффекты сокращенного набора команд по настоящему изобретению, сравнивают набор команд Java Card и набор команд TGoMOS (сокращенный набор команд по настоящему изобретению), в дополнение к коду интерпретатора байт-кода, система виртуальной машины, реализованная в той же микросхеме, имеет в основном такой же код, в команде отключен трудоемкий криптографический алгоритм и операция записи во флеш-память, для сравнения используют среднее время 10 результатов выполнения и получают результаты сравнения. Результат сравнения размеров преобразованного байт-кода набора команд Java Card и набора команд TGoMOS показано в табл. 21. Результаты сравнения производительности приложений электронного кошелька EDEP на платформах Java Card и TGoMOS приведены в табл. 22.In order to verify the above-mentioned advantageous effects of the reduced instruction set of the present invention, the Java Card instruction set and the TGoMOS instruction set (the reduced instruction set of the present invention) are compared, in addition to the bytecode interpreter code, the virtual machine system implemented in the same chip has basically the same code, the instruction disables the labor-intensive cryptographic algorithm and the flash memory write operation, the average time of 10 execution results is used for comparison, and the comparison results are obtained. The comparison result of the size of the converted bytecode of the Java Card instruction set and the TGoMOS instruction set is shown in Table 21. The performance comparison results of the EDEP electronic wallet applications on the Java Card and TGoMOS platforms are shown in Table 22.

Таблица 21Table 21 Пакет приложений/библиотекApplication/Library Package Java CardJava Card TGoMOSTGoMOS frameworkframework 0x41B0x41B 0x4980x498 securitysecurity 0x5A80x5A8 0x57A0x57A guomiguomi 0x1D50x1D5 0x1F20x1F2 crscrs 0xE20xE2 0xE30xE3 securitydomiansecuritydomian 0x12C0x12C 0x1350x135 openopen 0x6A40x6A4 0x6BA0x6BA prepaidprepaid 0x23520x2352 0x24C40x24C4

Таблица 22Table 22 Тип операцииOperation type TGoMOSTGoMOS Java CardJava Card Повышение производительности %Increase productivity % Выбор приложенияSelecting an application 28982898 30783078 5,855.85 Инициализация кольцевой конфигурации памятиInitializing the ring memory configuration 59585958 68266826 12,7212.72 ПамятьMemory 31183118 32323232 3,533.53 Промежуточный итогSubtotal 1418814188 1569015690 9,579.57 Выбор приложенияSelecting an application 29042904 30793079 5,685.68 Инициализация потребленияInitialization of consumption 56465646 64386438 12.3012.30 ПотреблениеConsumption 41924192 43784378 4.254.25 Получение балансаGetting balance 22142214 25542554 13,3113.31 Промежуточный итогSubtotal 1495614956 1644916449 9,089.08 Выбор приложенияSelecting an application 29062906 30803080 5,655.65 Инициализация потребления соединенияInitializing connection consumption 55425542 64396439 13,9313.93 Обновить файл-1AUpdate file-1A 25012501 25792579 3,023.02 Обновить файл-1EUpdate file-1E 26752675 27562756 2,942.94 Потребление соединенияConnection consumption 41644164 43564356 4.414.41 Получение балансаGetting balance 22142214 25542554 13,3113.31 Промежуточный итогSubtotal 2000220002 2176421764 8.108.10

Из табл. 21 видно, что по сравнению с набором команд Java Card размер байт-кода набора команд TGoMOS (сокращенный набор команд по настоящему изобретению) близок к набору команд Java Card. Из табл. 22 видно, что производительность применения электронного кошелька EDEP к платформе набора команд виртуальной машины TGoMOS лучше.It can be seen from Table 21 that, compared with the Java Card instruction set, the bytecode size of the TGoMOS instruction set (the reduced instruction set of the present invention) is close to the Java Card instruction set. It can be seen from Table 22 that the performance of applying the EDEP electronic wallet to the TGoMOS virtual machine instruction set platform is better.

Очевидно, что специалисты в данной области техники могут вносить различные изменения и вариации в настоящее изобретение, не выходя за рамки сущности и объема настоящего изобретения. Таким образом, если эти модификации и вариации настоящего изобретения попадают в объем формулы настоящего изобретения и его эквивалентной технологии, настоящее изобретение также предназначено для включения этих модификаций и вариаций.It is obvious that those skilled in the art can make various changes and variations to the present invention without departing from the spirit and scope of the present invention. Thus, if these modifications and variations of the present invention fall within the scope of the claims of the present invention and its equivalent technology, the present invention is also intended to include these modifications and variations.

Claims (33)

1. Устройство с ограниченными ресурсами для запуска виртуальной машины, содержащее микросхемы в виде интеллектуальных элементов безопасности (Secure Element) и микроконтроллерные защищенные микросхемы (secure Micro Controller Unit chips), отличающееся тем, что сокращенный набор команд на основе регистра, исполняемый виртуальной машиной, содержит:1. A device with limited resources for running a virtual machine, containing chips in the form of intelligent secure elements (Secure Element) and secure Micro Controller Unit chips, characterized in that the reduced set of register-based commands executed by the virtual machine contains: первую команду, причем первая команда содержит код операции, при этом информация о параметрах первой команды содержится имплицитно в коде операции;the first command, where the first command contains the operation code, and information about the parameters of the first command is contained implicitly in the operation code; вторую команду, которая представляет собой высокочастотную команду, имеющую множество форматов команд;the second command, which is a high-frequency command that has many command formats; третью команду, которая содержит команды, имеющие различные форматы команд на основе количества различных параметров;the third command, which contains commands that have different command formats based on the number of different parameters; четвертую команду, которая содержит команды часто используемого типа данных и команды редко используемого типа данных, причем команды часто используемого типа данных имеют множество форматов команд, а команды редко используемого типа данных имеют один формат команд;a fourth command that contains commands of a frequently used data type and commands of a rarely used data type, wherein the commands of the frequently used data type have multiple command formats, and the commands of the rarely used data type have one command format; пятую команду, которая представляет собой команду, имеющую однобайтовый индекс набора констант;the fifth command, which is a command that has a one-byte index of a set of constants; шестую команду, которая представляет собой макрокоманду;the sixth command, which is a macro command; причем сокращенный набор команд на основе регистра выполнен с возможностью снижения потребности к памяти микросхем для постоянного хранения за счет минимизации размера байт-кода.wherein the reduced register-based instruction set is designed to reduce the need for microcircuit memory for permanent storage by minimizing the size of the bytecode. 2. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что первая команда содержит:2. A device with limited resources according to paragraph 1, characterized in that the first command contains: команду, которая имплицитно включает как операнд, так и номер регистра в коде операции;an instruction that implicitly includes both an operand and a register number in the opcode; команду, которая имплицитно включает номер регистра в коде операции; команду, которая имплицитно включает константный операнд в коде операции;an instruction that implicitly includes a register number in the operation code; an instruction that implicitly includes a constant operand in the operation code; команду доступа к элементу массива, которая имплицитно включает тип элемента массива в коде операции;an array element access command that implicitly includes the array element type in the opcode; команду, которая имплицитно включает тип и параметры вызова метода в коде операции.a command that implicitly includes the type and parameters of the method call in the opcode. 3. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что вторая команда содержит:3. A device with limited resources according to paragraph 1, characterized in that the second command contains: часто используемую команду арифметических операций, имеющую множество форматов операций;a frequently used arithmetic operation command that has many operation formats; команду доступа к элементу массива в формате 4-разрядного регистра;command to access an array element in 4-bit register format; команду создания массива, которая имплицитно включает тип элемента массива в коде операции;an array creation command that implicitly includes the array element type in the opcode; команду ветвления, имеющую множество форматов команд на основе равных и неравных результатов сравнения.a branching instruction that has multiple instruction formats based on equal and unequal comparison results. 4. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что третья команда содержит:4. A device with limited resources according to paragraph 1, characterized in that the third command contains: команду вызова статического метода, имеющую различные форматы команд, на основе различного количества параметров;a static method call command that has different command formats based on a different number of parameters; команду вызова виртуального метода, имеющую различные форматы команд, на основе различного количества параметров;a virtual method call command that has different command formats based on a different number of parameters; команду вызова метода частного экземпляра, имеющую различные форматы команд, на основе различного количества параметров.private instance method invocation command, which has different command formats based on different number of parameters. 5. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что четвертая команда содержит:5. A device with limited resources according to paragraph 1, characterized in that the fourth command contains: команду часто используемого типа данных, включающую в себя команду короткого типа данных;a frequently used data type command that includes a short data type command; команду редко используемого типа данных, включающую в себя команду типа данных int.a rarely used data type command that includes the int data type command. 6. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что пятая команда содержит:6. A device with limited resources according to paragraph 1, characterized in that the fifth command contains: команду вызова статического метода, имеющую однобайтовый индекс набора констант;a static method call command that has a one-byte index into a set of constants; команду вызова виртуального метода, имеющую однобайтовый индекс набора констант;a virtual method call command that has a one-byte index into a set of constants; команду доступа к статическому домену, имеющую однобайтовый индекс набора констант;a static domain access command that has a one-byte index into a set of constants; команду доступа к домену экземпляра, имеющую однобайтовый индекс набора констант.an instance domain access command that has a one-byte index into a set of constants. 7. Устройство с ограниченными ресурсами по п. 1, отличающееся тем, что шестая команда содержит:7. A device with limited resources according to paragraph 1, characterized in that the sixth command contains: макрокоманду, сформированную на основе замены команды вызова статического метода;a macro command formed on the basis of replacing the static method call command; макрокоманду, сформированную на основе объединения множества смежных команд.a macro command formed by combining a set of related commands.
RU2023116227A 2020-12-24 2021-07-06 Reduced instruction set of micro-operating system byte-code and device with limited resources RU2837139C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011553141.8 2020-12-24

Publications (1)

Publication Number Publication Date
RU2837139C1 true RU2837139C1 (en) 2025-03-26

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021469A (en) * 1996-01-24 2000-02-01 Sun Microsystems, Inc. Hardware virtual machine instruction processor
US6129460A (en) * 1997-12-17 2000-10-10 Unisys Corp. Object-oriented apparatus and method in a computer system for a programming language compiler to select optimal pointer kinds for code generation
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
US20060020932A1 (en) * 2002-11-29 2006-01-26 Research In Motion Limited Method for generating interpretable code for storage in a device having limited storage
KR100809293B1 (en) * 2006-03-10 2008-03-04 삼성전자주식회사 Device and method for managing a stack in a virtual machine
RU2562430C2 (en) * 2010-06-22 2015-09-10 Интернэшнл Бизнес Машинз Корпорейшн Increasing number of general purpose registers available to instructions

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021469A (en) * 1996-01-24 2000-02-01 Sun Microsystems, Inc. Hardware virtual machine instruction processor
US6129460A (en) * 1997-12-17 2000-10-10 Unisys Corp. Object-oriented apparatus and method in a computer system for a programming language compiler to select optimal pointer kinds for code generation
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
US20060020932A1 (en) * 2002-11-29 2006-01-26 Research In Motion Limited Method for generating interpretable code for storage in a device having limited storage
KR100809293B1 (en) * 2006-03-10 2008-03-04 삼성전자주식회사 Device and method for managing a stack in a virtual machine
RU2562430C2 (en) * 2010-06-22 2015-09-10 Интернэшнл Бизнес Машинз Корпорейшн Increasing number of general purpose registers available to instructions

Similar Documents

Publication Publication Date Title
US20250130806A1 (en) Implicit Global Pointer Relative Addressing for Global Memory Access
US7039904B2 (en) Frameworks for generation of Java macro instructions for storing values into local variables
EP0671685B1 (en) Method and apparatus for detecting and executing cross-domain calls in a computer system
BR102020019657A2 (en) apparatus, methods and systems for instructions of a matrix operations accelerator
US7917732B2 (en) Microprocessor for executing byte compiled JAVA code
CN114356417A (en) System and method for implementing 16-bit floating-point matrix dot-product instruction
RU2621000C2 (en) Determination of symbol data group length containing ending symbol
MX2014010946A (en) Instruction to load data up to a specified memory boundary indicated by the instruction.
US20060195680A1 (en) Computer instruction value field having an embedded sign
MX2014010947A (en) Instruction to compute the distance to a specified memory boundary.
US20100011191A1 (en) Data processing device with instruction translator and memory interface device to translate non-native instructions into native instructions for processor
Sakamura Architecture of the tron vlsi cpu
CN104169870A (en) Copying character data having a termination character from one memory location to another
EP1875338A4 (en) Microprocessor access of operand stack as a register file using native instructions
CN101868783A (en) Enhanced microprocessor or microcontroller
KR20010043826A (en) Microcontroller instruction set
US7543288B2 (en) Reduced instruction set for Java virtual machines
US6988261B2 (en) Frameworks for generation of Java macro instructions in Java computing environments
CN112631723A (en) Byte code simplified instruction set and resource limited device of micro-operation system
RU2837139C1 (en) Reduced instruction set of micro-operating system byte-code and device with limited resources
KR20040079851A (en) Direct instructions rendering emulation computer technique
US7058934B2 (en) Frameworks for generation of Java macro instructions for instantiating Java objects
US5418975A (en) Wide instruction word architecture central processor
Rafiquzzaman et al. Modern Computer Architecture
WO2019046723A1 (en) Implicit global pointer relative addressing for global memory access