Думаю, что да, так как теперь все четко и логично) Просто недоанализировано было, и своей оторванностью от общей картины вводило в замешательство.
Вид для печати
Эх, предекодер ВМ2 неактуален давно, и табличка с выходными микроадресами у меня где-то валяется, не стал уж мешать тебе.
А вот ВМ3 был бы интереснее, зря ты отказываешься :). В ближайшее время буду писать оптимальный анализатор для основной ПЛМ ВМ3, там входное слово пошире будет, скорость нужна - SSE2/AVX + многоядерник, к новым райзенам присматриваюсь под это дело.
Дык, это предекодер, тут всего 16 бит на входе, 64K вариантов перебрать.
Вот анализатор предекодера М4, он вообще на питоне по-быстрому написан.
Вот так красивенько выглядит PLM микрокоманд (часть AND):
200 записей (на самом деле 198), в каждой - код инструкции (16 бит), адрес микрокоманды (6 бит), и несколько дополнительных параметров (6 бит).
- - - Добавлено - - -Код:..1........1.................1.........1.....0............1.0.....1..........0....................0.1...0.......10............................................1.........................................
..1........1.1...............1...............0.0..................0.......1..0....................0.0...0.......01.........0.....................1..........1.....1.....................................
..1......1.1.0..................1.......0....0....0.......1.......0..........0.......1........0...1.0...0.......0................1......................1.........0.....................................
........01...1....0......0...0...0...0.11....1....1......10.1.....00.........0......01.....1......0.1...0..1....00..................0...10..0.......1...............1....0...........0.0....1...........
...11...01...1....0......0...0...0...0.1.....11...0......00.1.....0..........101...........1......0.10..0..0....10...............1..0...0...........1.............1.1....1.............1................
...11...00...0....0......0...0...0..10.0.....00...0......00.0.....00..........01.....0.....0......0.01..0..1............................00..0.......1...............0....1.............0................
.....0.............1.......................1.....................1......11.........0..1........1.0.0.................0...1.........................1............0.......0..........0......1.............
.....1.0...........0.......0...1...........1..........1..........1....1......0.....0.............1.0......1.....00.......1...1...0.............0..................01...............1......0.............
.....0.0...........11......1...00.......0..1...0......................1..........1.1........1.01...0.................1...1.........................0...............0....0..........1....................
.....1....1.1.0....1.0......0.....10.....1.....0.....0..0....01...........0........10..0........1..1........0.1..........1.01......0.0.0.....1.0.00........0...1.1.1.1......1..0.1.1.....11.0...........
.......1..0.0.1.....00......1.....10.....101....0....0.......10.....1......0...........1..1....1.........1..0........10.....1......0...0......10.001.0....11.1.0......0.1...1..1.1................1.....
.....1...00..00..1....1.....00......0.....0..00..........00..00..00.1.....0..0......0.0..........00.0...0.......000...1....00....0....110.....10...1.11...00...10.0..01.1...0..1.1...0......0.........0.
......0.........11...11.00......0......0........1.0..1.....10........1.........0.0...00.00....0....0.0......1.....1.............1.0...1.....0.....1.............0..0..............00.0....0.............
......1.........0.....1.0............................1.....1......................0......1.......0................1...............1................................0...............0......0.............
................1..0..1.1...............0............1.....0.....0.......................0.....0..................1...............1................................0...............0......0.............
......0....................................1...................................................0.......................................................1................................................
..10.0001000100.00100101000..0010011000001001000100.101110000.01000001.0..011000100000101010.0000000001.000000100000100100000011000001000011010000000000000.000.1.000010000.011.0.10001000010110.10.0111
..101.0001000110010.110000000110101010.01.0.0111100010.0011000111.1001010.100100.10010100010.01.1.1.101011.0110111001001101100101.00001.101.0000110.01110110010011.00011.0100000101.0110.1.1100101100.10
...1..1.100.00011.1.00101011.0010.010.10.1..10010000110000010.001.00011110111000001.1010.110010.000.00010100.11100110.010.01..10101.01.100000001110.0110.1...0..110.0011.001.11.1.0.011001.010000111010.
..0101.1111..11..11110.1.1100100100010111001111000111.00011.1010011110010010111111.101010.0100111111111110.1110111.101110111001101.010111111.01110111011.110.1.001111101110.010010010001001001100.010100
..1.10000110110100001101010.111.01101101001001101011001101101101001010.1.1000101100011011000110010101100101001101101001010101.100101010010011010.0100101010101010010010.001111010110.01001001.10011.1011
..1010.0010.1101.0001....00.110.01..11100.1011111.011.10111.010000110....10.011010.0.0.01..11.001010100011110..111.0100010001.0011.11.001101010011001.01.001.1.1.01010.1010110.111.001010.00.1.101.1...1
............................1......................................1.......................................................................................0...........................0................
.................1..........1.1.........0....................0......0...........0.............1............................11..............1..1.11.........1...........0....0........0..................
.....0.0...........0......1................0.....................0................10...........0...0..............1..0...0........1....0.......0...0...............0....0..........0......0.............
...................................................................1...0...................0..........0..................................01.....1........1..........1..1...............1................
.........1...1.........1.....................10..........0.............0.....1......................1..........01.......................1.......0........0.............0........1.......................
........1......1.......1.........1....0................................0.....................................1..................................0........0.............0................................
Ну, а вот так выглядит часть OR (или сумма):
Тут 200 записей, и 37 выходов. А именно адрес следующей микрокоманды, индексы регистров, коды ALU, и прочее, и прочее.
Код:.............................1..1.............1....1.....11.....1.1.......................1.......1.....1..............1..............1................1..................1.............................
.......................1.....1.........1.....111.111...1.1....1....111.1.....11111..1111...1.1..111.111.1111111111111...1.11..1111..111111111111111.1111.11..1..111.1111.111.11.1.1..11111..11.1111.1111
.................1........................1............1..1..1..............1.1............1........1.1.1..1....11..........1......11....1.......1..1.1..1.1...11...1.1..1..11.1.1..11.11...1..11.......
............................1...1...1...1...........1..1...11...............1............11.........1.1....1......1...1..1..1......11..1.....1.1....1......1.1.1....1.11.1...1.1.1..1..11....1.11.......
.......................................1....1.....1...........11...111.1..1..1.11...11.1.....1..1....1.1....1111...11.1...1....11....1....1..1....1..............1...1.....1.11.1...1.1.11.1..11.1......
.........................1.............1..........1.1..1......11....1..1..1..1.111..111.....1...1...11.1.1...1.111.11.1...1...11........1.11.11.11...11.11...1..1.....11.....1..1...111.1..11111111.....
.........................1.............1..............11....1....................1....11.....1.........1..1.1....1..1.1.......11........1..1..1.11...11..1..11..1....111...1.1......11.....111.11.1..1..
............1........1...1........1....1......................1.....1..1.1...1..1.....1......1..1...1..1.1...11.1..11.1...1...111.......1.11..1.1.1..1...1...11........1...1.1......1...1..111.1.11..1..
..........1.........................1........1....1.1..1.....1.1...1.1.............1.1.....1..11...11.1....11..111..1...11..1..111.11...11.1.11.11..1.1..1.1.1.11.111.11.1..1..111.1.1111.1111.11.......
..........................1................1.....1..................1..1..1..1.111..1.11.......11....11..1..11.....1.1....1...11.......11.111..1..1..1....1......11..1..........1..1.....11...11.1.1..11
...........................1..........1....111...11............1...11111..1..1.111.111111.......11.1.11..1...1.1...111...11.1.11.1.....11.1.1..1..1.11...........11.11...1.1...1.11...1..1.1..11.11.....
..........................1....1...............1..1....11..........1..1...1.........111.1..1..1..1..1....1.11...11..1...1....11111..1..111..11.111..1.1..1......1.111.11.1......1.11.1111.1.111.1..111..
..........................1.......1............111.....1...........11..11.1..1.111..1..11..1...111..11...1.1111.11.1......111.11........1.1.111.111.111..1.1.1.1111.1111.1..1..1111..1.111..111.1111.1..
................1..1..1.1..........1................1..1..11.1.1...............1...1.....1.1..1....111.....1....11......11......1.1111...1.1.11.11..1.1..1.1.1.111.1..11.1..1..1.1.1.1.111.111.11.......
.....11..1...1..............1......1....1.1.........1.......111..11.........1.1....1....11.1..1..1..............111..11.........1....1...1.1.....1.11.1..1...1..11.....111..11.1.1..111.111.11.1........
........................1..................................1...11..................................1.1.......................................1.............................................1............
................1..............................................................1........................................................................................................................
.........1...1.....11...1...1......1....1.1.........1..1....1111.1..........1.1.........1..1..1..1..11..1..1....111..11.1.......1.1111...1.1..1.11.11.1..1.1.1.111.1..1111..11.111.1111111..11.11.......
.......1............1..........................1........1........1.....................................................1.................................................................1..............
...............................................1........1.........................................1....................1...1.......................1...1.................................1..............
...................................1..........1....1.....1.............................................................1..............1................1................1...............................
....................................................1..............1.........11.................1...1........1..1...................1....11.........................1..1.1...1.........1.....1..........
..........................................1.........1........1..............11.............1....1.....1....1.1..11..........1......1......1......1..1.1..1.1...11......1....1..1.1..11..1...11.1........
....................................................1..1............................................1.....................................1...........................11.....................1..1.......
..........................................1..................1.....1........111............1....1.....1....1.1...1..........1......11....11......1..1.1....1...11...1....1..11.1.1..11.11......1........
......................1.................1..1...............1.....1................11.....1.....1...1.....................1......1.1..1.............1......1........1....1..........1......1.............
.........................1..............1...............1...1....1.................1.....1....1....1..................1.11......1.1..1.......1.....1......1............11..........1......1.............
......................................1.....1....1.................1......1.........1..................1.1.....1......1.....1.1.............1.......1...............1....1.1.1.111..1.........1.........
.........................1...1..1...1.....1..111..11...1111.11111.1..1....1..11..1..11.1..11.11.111.1.1.1..111111111111.1..1..111..11111111..1.1111...11.11..1.111...111..11111.1.1.111.11.111111.1..1.1
.........1...1..............1.......1...1......1........1..11...............1...........11.......1....1...........1..11..1.11..........1.....1.1....1.....11.1......1....1...1.1.1..1.111......1........
............................1.............1..................1.....1........1.1.............................................1......11....1.................1........1....1...1.1.......1................
........1......1.................1.......1..1..1.......1.......1...........1..............11.....1....1....11..1..1.11.........11....1.1.......1....1.....1....1......11..1.1...11..1.1.1......11......1
..............1..............11.1......11..11.1..1.1.1..11111.1.111.1..1.......11111.111.11...11.111.11.11...1.....1.111.111..11.11...11...111111111.111.1...1...111.1.11.......1.11111..1111.11111...11
.............................1..1......111.1..1..111.1...1.1..1..1111..1..11..1111111.1..111..11.111.11.11.111....1..1...111.....11.1.11.1.11.1111.11111.1.......1111..111...1....11.111.11.1.11.11.111.
.........................1......1........1.....1..............11...........1.....1........1......1..........1..1..1.11.....1..1.1....1.1..1..1.1.1....1...1.....11....1...1.....1.1...1....1..1.1......1
..................1......1...........1......1..1....1..11...1......1..........1......1.1.....11..1..........11.1..1..11....1..111...1..1.1.....1..1...1......1.111..11...1.111..11...1.1.1.1.11.1.1.....
..111......1..................1.....1........1...11....11.1.1..11..1.1....1..11.....1111...1..1.1...1.1..1.1..1111.11.1.1.1...11....1...1111.11.1.1.11.......1.1....11...1..111.11..11.111....11..1.....
Вообще, на первый взгляд, расшифровать микрокод - это еще та жесть)
В том смысле, что это не привычная в программировании последовательность команд, располагающаяся друг за другом.
Это совсем другой принцип.