О проекте моего 128-битового (128-bit) процессора LUX-Septium.

Представьте себе 128-битовый (128-bit) процессор, а конкретнее - процессор с адресуемым регистровым полем в сотни регистров общего назначения - РОН и с длиной каждого из регистров общего назначения - равной 128 бит или то же, что и 16 байт!

Для того, чтобы получить некоторое визуальное проедставление о величинах, с которыми работает этот 128-битовый (128-bit) процессор, ниже - приведён следующий фрагмент программы:

   12345678987654321012345678987654321 ohed oinl

В этом фрагменте приведено обычное десятичное число с отладочным десятичным кодом вида - ЦИФРОВАЯ ВОЛНА - специально разработанным мною для визуальной отладки и тестирования алгоритмов подпрограмм перевода десятичных - либо шестнадцатиричных чисел в двоичную систему счисления и обратно - в десятичную - либо шестнадцатиричную систему счисления, в сквозном тракте компиляции - исполнения.

Оттранслированный и исполненный эмулятором-интерпретатором моего 128-битового (128-bit) процессора LUX-Septium - вышеприедённй фрагмент Люкс-программы выдаёт результат следующего вида:

   000260B060436414 E55381BA6EB5F4B1

   12345678987654321012345678987654321

Где, в первой строке - изображён шестнадцатиричный код двоичной величины этого числа, исходного вида - ДЕСЯТИЧНАЯ ЦИФРОВАЯ ВОЛНА, переведённого Люкс-компилятором в двоичную систему счисления, а именно - приведён шестнадцатиричный код длиной в октослово, в виде двух шестнадцатиричных кодов, длиной - в квадрослово.

А, во второй строке - изображён десятичный код двоичной величины этого же числа, переведённого обратно в десятичный вид эмулятором-интерпретатором моего 128-битового (128-bit) процессора LUX-Septium, в сквозном тракте компиляции - исполнения.

...

Следующий фрагмент даёт примерно такое же наглядное представление, но - с кодом, вида - ШЕСТНАДЦАТИРИЧНАЯ ЦИФРОВАЯ ВОЛНА:

   00123456789ABCDEFEDCBA98765432100 ohed oinl

и выдает следующий результат выполнения Люкс-программы:

   0123456789ABCDEF EDCBA98765432100

   1512366075204170946102572431435833600

...

Следующий фрагмент даёт примерно такое же наглядное представление, но - с кодом, вида - (почти) ВСЕ ДЕВЯТКИ:

   8999999999999999999999999999999999999 ohed oinl "MAX to BIN & to DEC" say

и выдает следующий результат выполнения Люкс-программы:

   06C556425A113FC3 4DA8978FFFFFFFFF

   8999999999999999999999999999999999999 MAX to BIN & to DEC

- который является примером МАКСИМАЛЬНОГО ДЕСЯТИЧНОГО ЧИСЛА, переведённого Люкс-компилятором в двоичную систему счисления, а затем - переведённого обратно в десятичный вид эмулятором-интерпретатором моего 128-битового (128-bit) процессора LUX-Septium, в сквозном тракте компиляции - исполнения.

...

Следующий фрагмент даёт примерно такое же наглядное представление, примерно, с таким же кодом, вида - (почти) ВСЕ ДЕВЯТКИ:

   19999999999999999990000000000000000000 ohed "MAX to BINARY" say

и выдает следующий результат выполнения Люкс-программы:

   01812F9CF7920E2B 58B6876C589C0000 MAX to BINARY

- который является примером МАКСИМАЛЬНОГО ДЕСЯТИЧНОГО ЧИСЛА, переведённого Люкс-компилятором в двоичную систему счисления, а обратный пример был невозможен, при применении алгоритма с использованием только ограниченных стандартных приёмов программирования в стандартных командах целочисленной арифметики двойной точности 64-битового процессора - типа - Intel 80x86, архитектуры вида IA-32e.

...

Следующий фрагмент даёт примерно такое же наглядное представление, примерно, с таким же кодом, вида - (почти) ВСЕ ПЯТНАДЦАТКИ:

   007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ohed oinl "MAX to DECIMAL" say

и выдает следующий результат выполнения Люкс-программы:

   07FFFFFFFFFFFFFF FFFFFFFFFFFFFFFF

   10633823966279326983230456482242756607 MAX to DECIMAL

- который является примером МАКСИМАЛЬНОГО ШЕСТНАДЦАТИРИЧНОГО ЧИСЛА, переведённого Люкс-компилятором в двоичную систему счисления, а затем - переведённого обратно в десятичный вид эмулятором-интерпретатором моего 128-битового (128-bit) процессора LUX-Septium, в сквозном тракте компиляции - исполнения.

...

Возможно алгоритмы моих 128-битовых программ перевода в двоичную систему требуют уточнения и доработки, но и здесь, и сейчас - они дают достаточно наглядное представление о масштабах величин, с которыми уже реально оперирует Люкс-компилятор и эмулятор-интерпретатор моего 128-битового (128-bit) процессора LUX-Septium.

***

Однако, несмотря на столь громоздкие данные, которые может обрабатывать данный 128-битовый (128-bit) процессор LUX-Septium, система команд этого процессора является байтоориентированной и весьма компактной, и до некоторой степени даже компактнее системы команд 16-битового процессора Intel 8086 !!!

Так, исходный модуль самого компилятора с языка LUX для этого 128-битового (128-bit) процессора LUX-Septium длиной в 4245 команд компилируется в исполняемый модуль, для этого же 128-битового (128-bit) процессора LUX-Septium с длиной исполняемого кода в 8736 байт.

Так же, исходный модуль самого компилятора с языка LUX для этого 128-битового (128-bit) процессора LUX-Septium длиной в 4245 команд компилируется в исполняемый модуль, для 16-битового (16-bit) процессора Intel-8086 с длиной исполняемого кода в 12273 байт.

Из этого примера - имеем среднюю длину команды:

Для исполняемого кода 128-битового процессора LUX-Septium: 8736/4245 = 2,06 байта!!!

Для исполняемого кода 16-битового процессора Intel-8086: 12273/4245 = 2,89 байта.

То есть, практически, мы, здесь, имеем соотношение ДВА байта LUX-Septium(!!!) к ТРЁМ байтам Intel-8086 ...

Система команд этого 128-битового (128-bit) процессора LUX-Septium, является и существенно более прозрачной, наглядной и понятной, чем системы команд всей линейки процессоров Intel 80x86, а тем более соременных моделей архитектуры IA-32e, которые стали невероятно громозкими из-за весьма частого применения REXX-префиксов, что наряду с восьмеричными полями байта кода операции и байта кодов полей MOD/RM, опускает системы команд до пёстрого и малопонятного БИТОВОГО УРОВНЯ.

Читать, декодировать и понимать такие битовые системы команд - весьма затруднительно.

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

Затруднительно и долго было, например, найти ассемблер для 64-битовой архитектуры IA-32e, а дизассемблер для неё наверно еще и не начали разрабатывать, и вся надежда пожалуй только на хакеров, которые разработали дизассемблер для 32-битовой архитектуры IA-32.

***

Для моего же, нового, 128-битового (128-bit) процессора LUX-Septium, уже сейчас разработаны и компилятор с языка LUX, и дизассемблер, и даже декомпилятор - в исходный текст языка LUX.

И это на порядок повышает эффективность работы с таким процессором, как на стадии проектирования самого процессора, так и при работе с этим процессором, на стадии разработки программного обеспечения для него.

Я - как и невольно, так и сознательно применяю этот оборот речи: "при работе с этим процессором", поскольку, у меня уже давно такое ощущение, что я работаю именно с процессором, хотя, реально, работаю с эмулятором-интерпретатором.

А собственно, что? - Ведь на процессоре, с частотой 2,5 ГГц этот интерпретатор имееет производительность 200 миллионов операций в секунду!

И это вполне достаточно, для эффективной разработки программ, тем более, что эффективность всех версий компиляторов с языка Люкс - позволяет компилировать любую программу - на любом процессоре, либо эмуляторе-интерпретаторе - за сотые, если не тысячные, доли секунды!!!

Да, и я ведь, собственно, создал новый декодер команд, для серийных процессоров - всей линейки процессоров Intel 80x86.

Что с того, что этот декодер, пока - программый!?

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

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

И альтернативные системы команд имеют известное распространение, к примеру фирма Intel включила нынешнюю систему команд 80x86, в качестве альтернативной, в состав своей новой разработки - прцессора Itanium.

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

А разрядность процессора не имеет принципиального значения, ведь у меня есть эмуляторы-интерпретаторы для работы с данными в 8-bit - 16-bit - 32-bit - 64-bit - 128-bit и 256-bit - НЕ ПРЕДЕЛ!!!

***

Free Web Hosting