Конечные автоматы

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

Наиболее распространенный многошаговый метод управления базируется на использовании конечных автоматов, которые обычно представляются в графическом виде. Конечный автомат состоит из набора состояний и указаний о том, как изменять состояния. Указания определяются функцией перехода (next-state function), которая отображает текущее состояние и входные значення в новое состояние. Когда конечные автоматы используются для управлення, каждое состояние помимо всего прочего определяет набор выходных сигналов, которые выставляются при нахождении автомата в данном состоянии. Реализация конечного автомата обычно предполагает, что все выходные сигналы, которые не выставлены явным образом, считаются невыставленными.

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

Уточнение. По типу конечный автомат, рассматриваемый в данной статье, относится к машинам Мура, названным по имени Эдварда Мура (Edward Мооге). Его отличительные признаки заключаются в том, что выходные сигналы зависят только от текущего состояния. Для машины Мура прямоугольник, имеющий надпись «Комбинационная логика управления», может быть разбит на две части. У одной из них имеется управляющий выход и только вход состояния, а у другого имеется только выход следующего состояния (перехода).

Другим типом конечного автомата является машина Мили, названная по имени Джорджа Мили (George Mealy). Машина Мили позволяет использовать для определения выхода и вход, и текущее состояние. Машины Мура обладают потенциальными преимуществами реализации в скорости и размере блока управления. Скоростные преимущества возникают благодаря тому, что управляющие выходы, которые нужны на ранней стадии тактового цикла, не зависят от входов и формируются только на основе текущего состояния. Потенциальный недостаток машины Мура заключается в том, что ей могут понадобиться дополнительные состояния. Например, в ситуациях, при которых два следующих друг за другом состояния отличаются только одним параметром, машина Мили может унифицировать состояния, сделав выход зависимым от входа.

Конечный автомат для контроллера простой кэш-памяти

Четыре состояния контроллера простой кэш памяти:

— Бездействие. Это состояние ожидания допустимого запроса от процессора на чтение или запись, который переводит конечный автомат в состояние сравнения тега.

— Сравнение тега. Судя по названию, в этом состоянии происходит тестирование с целью обнаружения попадания или промаха запроса на чтение или запись. С помощью индексной части адреса выбирается сравниваемый тег. Если индексная часть допустима и тег — часть адреса соответствует тегу, происходит попадание. Данные либо считываются из выбранного слова, либо записываются в выбранное слово, после чего выставляется сигнал о готовности кэш-памяти (Cache Ready). Если производится запись, устанавливается единичное значение бита изменения. Следует заметить, что при попадании запроса на запись устанавливается также бит достоверности и поле тега. Это может показаться ненужным, но тем не менее осуществляется тег находится в едином элементе памяти, поэтому для выставления единицы в бите изменения нам также нужно внести изменения в поля достоверности и тега. Если произошло попадание и блок помечен как достоверный, конечный автомат возвращается в состояние бездействия. При промахе сначала обновляется значение тега кэш-памяти, а затем происходит переход либо в состояние отложенной записи, если блок в данном месте имел установленный в единицу бит изменения, либо в состояние распределения, если значение этого бита было равно нулю.

— Отложенная запись. В этом состоянии 128-разрядный блок записывается в память с использованием адреса, составленного из тега и индекса кэш памяти. При этом нужно дождаться сигнала готовности от памяти. Когда запись в память завершится, конечный автомат переходит в состояние распределения.

— Распределение. В этом состоянии из памяти извлекается новый блок. При этом нужно дождаться сигнала готовности от памяти. Когда чтение из памяти завершится, конечный автомат переходит в состояние сравнения тега. Хотя можно было бы перейти к новому состоянию, чтобы завершить операцию, а не использовать снова состояние сравнения тега, существует множество совпадений, включая обновление соответствующего слова в блоке, если было обращение по записи.

Для улучшения производительности эта простая модель легко может быть расширена дополнительными состояниями. Например, в состоянии сравнения тега в одном и том же тактовом цикле осуществляется как сравнение, так чтение или запись данных кэш-памяти. Чтобы уменьшить продолжительность тактового цикла, сравнение и обращение к кэш-памяти часто осуществляются в разных состояниях. Еще один способ оптимизации может заключаться в добавлении буфера записи, чтобы можно было сохранить измененный блок, а затем сначала считать новый блок, чтобы процессору не пришлось ожидать двух обращений к памяти при промахе и замене измененного блока. Потом кэш-память запишет измененный блок из буфера записи, пока процессор будет обрабатывать запрошенные данные.





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: