Управляющие автоматы с жесткой логикой
Пусть существует некоторый алгоритм в виде следующей блок-схемы:
Тогда, можно определить множество управляющих сигналов (Y1, Y2…), которые будут соответствовать последовательности операторов алгоритма.
Каждому выполняемому оператору можно поставить в соответствие состояние УА (a1, a2…).
Таким образом, можно определить таблицу функционирования УА (если УА находится в состоянии ai, то тогда по логике алгоритма УА должен подать на выход набор управляющих сигналов Yi ):
ai | Yi |
Если эта таблица имеет большой размер, то ее проще реализовать в ПЗУ – таблице прошивки ПМК (см. схему УА), а если маленький, то в виде комбинационной схемы КСвых.
Можно построить граф переходов состояний исходного алгоритма:
Тогда, смену состояний по графу можно реализовать в таблице функционирования по графу состояний, где новое состояние зависит от старого состояния и от признаков на входе УА:
aстарое | x | aновое |
a0 a1 a2 a2 | x x z z | a1 a2 a3 a4 |
Таким образом, если реализовать таблицу переходов между состояниями и таблицу соответствия выходных сигналов (Yi) от текущего состояния на аппаратном уровне, то будет построен управляющий автомат с жесткой логикой переходов. Правила алгоритма жестко связаны, т.к. реализованы в «железе». Следовательно, УА с жесткой логикой может выполнять только те алгоритмы, которые в нем изначально заложены. Однако, всё реализовать аппаратно сложно. Была сделана попытка построения ЦП с жесткой логикой, так называемого Z800 – 16-тиразрядного процессора, однако он так и не был построен из-за практической невозможности воплотить в КС все возможные комбинации переходов и операторов.
Алгоритм можно декомпозировать на под алгоритмы F®F1F2 и реализовать каждый под алгоритм в своей КС, в своем УА с жесткой логикой. При этом управляющие автоматы не могут работать параллельно, а только последовательно («управляющий» работой всей машины должен быть один). При этом если алгоритм разбить так, чтобы не было условий, т.е. чтобы под алгоритмы были линейны, то для реализации смены состояний (аi) подалгоритма можно использовать простой счетчик.
Из-за своих особенностей УА с жесткой логикой может использоваться только в специализированных процессорах с четким и неизменным алгоритмом. В универсальных процессорах (какими являются ЦП) невозможно аппаратно реализовать все требуемые задачи и это делается с помощью управляющих автоматов с программируемой логикой.