Эх, предекодер ВМ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.....
Последний раз редактировалось Titus; 22.10.2020 в 21:53.
Вообще, на первый взгляд, расшифровать микрокод - это еще та жесть)
В том смысле, что это не привычная в программировании последовательность команд, располагающаяся друг за другом.
Это совсем другой принцип.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)