Научная статья на тему 'Системная модель аппаратной реализации MQ-кодера'

Системная модель аппаратной реализации MQ-кодера Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
238
120
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хаханова Ирина Витальевна

Предлагается системная модель аппаратноай реализации MQ-кодера, выполненная с помощью редактора Simulink [1-7]. Управление работой алгоритма реализуется с помощью блока, представляющего сеть из семи параллельных автоматов. Архитектура управляющего модуля, состоящая из нескольких автоматов с небольшим количеством состояний, позволяет повысить частоту синхронизации устройства, а значит и скорость кодирования данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

System model for hardware implementation of the MQ-coder

System model for hardware implementation of the MQ-coder was proposed. This model based on a hierarchical asynchronous control block and was made in Simulink of the Matlab 7. This approach allows to present complex algorithm as net of several simple parallel FSMs that gives faster hardware implementation with higher clock frequency.

Текст научной работы на тему «Системная модель аппаратной реализации MQ-кодера»

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

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

Литература: 1. David Marshall, Wade A. Reynolds. Advanced Server Virtualization: VMware and Microsoft Platforms in the Virtual Data Center. AUERBACH, 2006 2. Gartner inc. http://www.gartner.com, 2007-2008.

Поступила в редколлегию 22.12.2007

Рецензент: д-р. техн. наук, проф. Руденко О.Г.

Горбачев Валерий Александрович, канд. техн. наук, профессор каф. ЭВМ ХНУРЭ. ‘щ(*' Научные интересы: моделирование систем. Хобби: музыка, волейбол, автомобили. Адрес: Украина, 61136, Харьков, ул. Героев Труда, 33, кв. 300.

Ефанов Александр Юрьевич, студент ХНУРЭ. Научные интересы: сервис-ори-ентированые системы, компьютерные сети. Адрес: Украина, 61071, Харьков, ул. Кибальчича, 33, кв. 8, тел. (057) 376-16-36, e-mail: [email protected].

УДК519.713:681.326

СИСТЕМНАЯ МОДЕЛЬ АППАРАТНОЙ РЕАЛИЗАЦИИ MQ-КОДЕРА

ХАХАНОВА И.В.

Предлагается системная модель аппаратноай реализации MQ-кодера, выполненная с помощью редактора Simulink [1-7]. Управление работой алгоритма реализуется с помощью блока, представляющего сеть из семи параллельных автоматов. Архитектура управляющего модуля, состоящая из нескольких автоматов с небольшим количеством состояний, позволяет повысить частоту синхронизации устройства, а значит и скорость кодирования данных.

1. Введение

HQ-кодер реализует алгоритм адаптивного арифметического сжатия [8 - 15] путем кодирования наиболее и наименее значимых данных на основе пары [D -значение, CX - контекст] сгенерированных алгоритмом EBCOT в результате сканирования битовых плоскостей.

Основой устройства являются два регистра, определяющие параметры интервала кодирования. Регистр А содержит значение текущего интервала, а регистр С хранит частичное слово для процесса кодирования. На начальном этапе регистр А инициализирован значением 0x00008000, которое обозначает начальную внутреннюю вероятность, а в регистр С записывается код 0x00000000, идентифицирующий отсутствие сге-нерированых слов сжатой последовательности. На рис. 1 представлен формат регистров А и С. Биты с меткой "a" соответствуют дробной части регистра А (текущее значение интервала), биты с меткой "x” -дробной части регистра С. Биты, отмеченные символом "s" - это разделители, блокирующие возмож-

ность возникновения переноса в старшие разряды. Биты "b" обозначают позицию готового сжатого кода, который переносится из регистра C в память. Бит "c" - бит переноса.

MSB регистр С LSB

lOIOIOIOIcIblblblblblblblbl si si slxlxlxlxlxlxlxlxlxlxlxlxlxlxlxlxl

MSB......................регистр A.......................LSB

lOlOlOlOlOlOlOlOlOlOlOlOlOlOlOlOlalalalalalalalalalal al al alal al al

Рис. 1. Структура регистров MQ-кодера

2. Архитектура устройства

Алгоритм сжатия данных в стандарте [11, 12, 14, 15] представлен в виде главной процедуры Encoder, вызывающей подчиненные ей функции. Иерархия процедур MQ-кодера представлена на рис. 2.

Encoder

• Initialization

• CodeLPS

• CodeMPS I

і Renormalization

itByteQut

►Flush

L*Di!

Discard b

► Nobit_Stu£f ►Bit Staff

Рис. 2. Иерархия процедур алгоритма MQ-кодера

Предлагаемая модель аппаратной реализации MQ-кодера (рис. 3) включает иерархический управляющий автомат FSM, основанный на 7 компонентных автоматах, и операционный автомат ALU, состоящий из двух блоков: АЛУ регистров (ALU Register) и АЛУ условий (ALU Condition). Simulink-модель устройства представлена на рис. 4. На основе программного алгоритма MQ-кодера составлены таблицы основных операций устройства (табл. 1) и условий (табл. 2). В зависимости от регистра, над которым выполняется

РИ, 2007, № 4

81

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

[D, СХ]

ALU

АШ

Condition

ALU

Refisters

[FSMl£* => [FSM2>* [FSM3K* [FSM4K* [FSM5K*

:—> [FSM6]** [FSM7]*^' > Coding stream

Рис. 3. Структура аппаратной модели MQ-кодера

Таблица 1. Базовые операции регистров MQ-кодера

Initialization operations

Code Operation

a0 A = 0x00008000;

c0 C = 0x00000000;

bp0 BP = BPST - 1;

ct0 CT = 12;

ct1 CT = 13

i0 reset I(CX)

mps0 reset MPS(CX)

Basic operations

a1 A = Qe(I(CX));

a2 A = A - Qe(I(CX));

a3 A = A << 1;

b1 B = B + 1;

b2 B = C >> 19;

b3 B = C >> 20;

bp1 BP = BP + 1;

c1 C = C & 0x000FFFFF;

c2 C = C & 0x0007FFFF;

c3 C = C & 0x07FFFFFF;

c4 C = C + Qe(I(CX));

c5 C = C- 0x00008000;

c6 C = C | 0x0000FFFF;

c7 C = [0x0000, (c(15:0) - 0x8000)];

c8 C = C << 1;

c9 C = C << CT;

mps1 MPS(CX) = 1 - MPS(CX);

i1 I(CX) = NLPS(I(CX));

i2 I(CX) = NMPS(I(CX) ;

ct2 CT = 7;

ct3 CT = 8;

ct4 CT = CT -1;

dis_b discard B;

Таблица 2. Условия алгоритма MQ-кодера

Conditions

Code Operation

e1 D== MPS(CX)

e2 B == 0xFF

e3 switch(I(CX)) == 1

e4 CT == 0

e5 B == 0xFF

n1 A < Qe(I(CX))

n2 A >= Qe(I(CX))

n3 A < 0x8000

n4 C < 0x08000000

n5 C(15:0)>=C+A

3. Архитектура АЛУ

АЛУ регистров содержит компоненты: A, C, I, MPS, CT, B, BP. Кроме того, устройство содержит счетчик L, подсчитывающий число байтов кода, сгенерированного на данный момент; буфер Т временных данных. Вычитающий счетчик CT идентифицирует точку (=0), в которой частично генерируемые биты кода переносятся из регистра C в буфер временных байтов T. В АЛУ также содержатся таблицы константных значений: Qe, NMPS, NLPS.

Модели операционных блоков регистров A, C, BP, B, CT могут быть представлены с помощью автомата Мура, класса С [16] (рис. 5), который определяется вектором M = (S,Z,W, ф, Ф,Я1), где S = (si,...,sm,..SM) - множество состояний и W = (wi,...,wg,...,wg) -совокупность выходных сигналов, идентичных S, соответствующих множеству значений, принимаемых устройством; Z = (zi,...,zm,...ZM) - совокупность входных сигналов: значения данных и управляющие сигналы, определяющие выбор операции; s(t +1) = 9(s(t),z(t)) - функция переходов;

У: w(t) = s(t) - функция выходов.

Рис. 5. Автомат Мура класса С

>

<sign

<sigR

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

<sig^3

<sigka

<sig^i

<sigka

<slgl

<dis^5 — ►

cx A

Vі C

hb

h* В

b° MPS

y* CT

У Qe

^mps

dis_b Swltchj

BPST BP

ALU

Registers

A e1

C e2

В e3

MPS_CX e4

m

CT n2

Qe пЗ

switctij n4

D n5

ALU

Cortdotions

c_a- ►

eJn c_bV

c_bp-^

njn

c_c- ►

c_ct- ► St

c_h^ c_mps- ►

DataEnd

dis_t>- ►

-O

Memory

82

Рис. 4. Simulink-модель MQ-кодера

РИ, 2007, № 4

Модель операционного автомата для регистра А (рис. 6) представлена функциями переходов

s(t +1) = <p(s(t),z(t)) и выходов w(t) = s(t), где S = W = (0,...,232 -1) - множество состояний и значений выходов; Z = (ai, a2, аз, a4, Qe(I(CX))) - множество входных сигналов.

Рис. 6. Регистр А

Модель операционного автомата для регистра C (рис. 7) представлена функциями переходов s(t +1) = <p(s(t),z(t)) и выходов w(t) = s(t), где S = W = (0,..., 232 -1) - множество состояний и значений выходов;

ний выходов; Z = (b1, b2, Ьз, C) - множество входных сигналов.

Рис. 9. Регистр B

Модели операционных автоматов для регистров MPS и I представляют собой классический автомат Мили, поскольку состояние устройства реализуется с помощью памяти с асинхронным чтением. Модель регистра MPS (рис. 10) представлена функциями переходов s(t +1) = <p(s(t),z(t)) и выходов w(t) = y(s(t),CX),

где S = (0,...,219 -1) - множество состояний;

W = (0,1) - множество значений выходов;

Z = (С1,С2, сз, С4,С5,С6, C7,c8, Qe(I(CX)), CT) -

входные сигналы.

Z = (С1, С2,Сз, С4,С5,С6, С7, с8, Qe(I(CX)), CT) - множество входных сигналов .

0x0000

С(15:0)

»ooJc)

\0x0000800ft

0x8000 OxOOOFFFFF 0x0007FFFF 0x07FFFFFF cl, c2, c3

h_j. I 0x01

F- jtH

Qe(i(cx;

I cO

^©-h

OxOOOOFFFF—) У

cl....c7

c8

c9

CT

Clk

u___

Set

D Q(

-« 1 -«CT -CT ->

Рис. 10. Регистр MPS

Модель операционного автомата для регистра I (рис. 11) представлена функцией переходов

Рис. 7. Регистр C

Модель операционного автомата для регистра СТ (рис. 8) представлена функциями переходов

s(t +1) = 9(s(t),z(t)) и выходов w(t) = s(t), где

S = W = (0,..., 13) - множество состояний и значений

выходов; Z = (Сц, С^ , С:2, С^) - множество входных сигналов.

ct2 set 7

ct3 set 8 Ч

ctO set 12

ctl set 13

ct4 -1

Clk >

Рис. 8. Регистр CT

Модель операционного автомата для регистра B (рис. 9) представлена функциями переходов

s(t +1) = 9(s(t),z(t)) и выходов w(t) = s(t), где S = W = (0,...,216 -1) - множество состояний и значе-

s(t +1) = 9(s(t),z(t)) и выходов w(t) = y(s(t),CX), где S = (а0,...,а19), а є (0,...,46) - множество состояний; W = (0,46) - множество значений выходов; множество входных сигналов

Z = (i0,i1,i2, CX, NLPS(I), NMPS(I)).

В программе Simulink модели регистров А (рис. 12, а) С, B, BP реализуются M-функциями с элементами задержки z-1, а модели регистров I (рис. 12, б) и MPS - блоками памяти, описанными S-функциями, для регистров .

NLPS(I) і NMPS(I) il, І2 D Q

ІЦ2 wr adr > rst

CX

Clk

Рис. 11. Регистр I

РИ, 2007, № 4

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

83

а

СЕН

c_i

CZ>

NL PS

C±>

NMPS

la

П

i2 wr

f NLPS

NMPS I1

I f

4*

o

adr CX

iam block rst: I

-►CD

S-Function

0

4. Сеть автоматов управляющего блока

Управляющий блок реализуется с помощью иерархических автоматов, построенных на основе взаимосвязных процедур алгоритма MQ-кодера (см. рис. 2). Модель такого устройства (рис. 15) представляет собой асинхронный автомат, в котором каждый компонент функционирует независимо от остальных и взаимодействует с последними только с помощью управляющих сигналов, инициирующих начало и окончание процедуры. Иерархический управляющий блок является сетью автоматов [17], модель которой задается вектором: N = (Z,{Sj), W,{fi},{y i},g), где Z - входной алфавит, {Si = (Ai,Zi,Si)}, 1 <i<n - множество компонентных автоматов (КА) (рис 16) сети:

Z _ I Zj х Zi ч— Zi ^ 0;

1 Ы ^ Zi = 0,

б

Рис. 12. Simulink-модели регистров

На рис 13. представлена Simulimk-модель АЛУ регистров, соответствующая блоку ALU registers с рис. 4.

АЛУ для вычисления условий реализуется с помощью комбинационной схемы, где входными переменными являются выходы регистров из соответствующего АЛУ (рис. 14).

где Zi, Zi — внутренний и внешний входные алфавиты Si. Функция переходов Si Si : Ai х Zi ^ Ai; W — выходной алфавит сети; {fi : (хAj) ^Zi},

1 < i, j < n — множество функций соединения КА сети; {у i :Z ^ Zi}, 1 < i < n — множество входных функций; g:(x Ai)хZ ^ W — выходная функция сети. Двух-i

компонентное множество { {Si}, {fi} } является базисом и структурой проектируемой сети.

84

РИ, 2007, № 4

Рис. 14. Модель АЛУ условий

Рис. 15. Модель асинхронного иерархического управляющего автомата

Алгоритм функционирования асинхронного иерархического управляющего автомата задается таблицей

РИ, 2007, № 4

переходов (табл. 3). На параллельность функционирования такого устройства указывает наличие переходов в различные состояния при одном и том же условии. Например, компонентный автомат FSM1_ByteOut передает управление сразу двум вершинам FSM5_Flush и FSM2_Renorm.

Таблица 3. Таблица переходов иерархического

автомата

Текущее состояние Условие Следующее состояние

MAIN Init FSM7_Init

MPS FSM3_MPS

LPS FSM4_LPS

FSM1_ByteOut - FSM5_Flush

- FSM2_Renorm

FSM2_Renorm Ren FSM3_MPS

Ren FSM2_LPS

FSM3_MPS MPSOut MAIN

FSM4_LPS LPSOut MAIN

FSM5_Flush FlushEnd FSM3_MPS

FSM7_Init - MAIN

В табл. 3 и на рис.15 отсутствие условия при выполнении перехода означает безусловный переход. В этом случае оба автомата - ведущий и ведомый функционируют параллельно, до тех пор пока второй из них не выполнит свой алгоритм и не перейдет в начальное состояние, ожидая очередного сигнала вызова. Эта ситуация возможна, если ведомый автомат имеет небольшое количество состояний и выполняет функции, не входящие в конфликт с выполняемыми в этот же период времени функциями ведущего автомата. Продолжительность выполнения одного цикла алгоритма соответствует наихудшему варианту - самому длинному пути обхода графа. Поскольку реализация автоматов с числом состояний, превышающим 6 - 7, является неэффективной из-за формирования длинных путей комбинационных функций и, как следствие, снижения частоты функционирования устройства, то использование асинхронной модели позволяет реализовывать сложные автоматы, сохраняя высокую допустимую частоту синхросигнала.

Таблицами 4-10 представлены множества переходов КА, составляющих сеть автоматов, формирующих иерархический асинхронный управляющий блок.

Таблица 4. Таблица переходов компонентного автомата FSM1_ByteOut

FSM1_ByteOut

ai Zi ai+1 wi

Start ByteOut&e2'&n4' S1 b1

ByteOut&e2 Start b3, c1, ct2, bp1

ByteOut&e2'&n4 S1 b2, c4, ct3, bp1

ByteOut' Start -

S1 e2 Start b3, c1, ct3, bp1

e2' Start b2, c4, ct3, bp1

Для разработки исполняемой модели управляющего блока использовался инструмент Stateflow программного пакета Simulink среды Matlab (рис. 16). Этот редактор предоставляет возможность для создания параллельных иерархических состояний и моделирования их поведения в рамках единого устройства.

85

Рис. 16. Модель асинхронного управляющего автомата

Таблица 5. Таблица переходов компонентного автомата FSM5_Init

FS M 5 I n it

ai Zi ai+i Wi

Start Init & e2 Start a0, c0, bp0, i0, mps0, ctl

Init & e2' S tart a0, c0, bp0, i0, mps0, ct0

86

РИ, 2007, № 4

Таблица 6. Таблица переходов компонентного автомата FSM2 Renorm

FSM2_Renorm

a Zi ai+1 wi

Start Renorm S1 a3,c8,ct4

Renorm' Start -

S1 e4 S2 ByteOut

e4'&n3 S1 a3,c8,ct4

e4'&n3' Start Ren

S2 n3 S1 a3,c8,ct4

n3' Start Ren

Таблица 7. Таблица переходов компонентного автомата FSM3 MPS

FSM3_MPS

ai Zi ai+1 wi

Start MPS S1 a2

MPS' Start -

S1 n3&n1' S2 a2,c4,i2

n3' Start a2,c4, MPSOut

n3&n1 Start a1,a2, MPSOut

S2 - S3 c4, i2, Renorm

S3 Ren Start MPSOut

Ren' S3 -

Таблица 8. Таблица переходов компонентного

автомата FSM4 LPS

FSM4 LPS

ai Zi ai+1 wi

Start LPS S1 a2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

LPS' Start -

S1 n2&e4 S2 a1, a2, mps1, i1

n2'&e4 a2, c4, mps1, i1

n2&e4' a1, a2, i1

n2'&e4' a2, c4, i1

S2 - S3 Renorm

S3 Ren Start LPSOut

Ren' S3

Таблица 9. Таблица переходов компонентного автомата FSM5 Flash

FSM5_Flash

ai Zi ai+1 wi

Start Flush&n5 S1 c7

Flush&n5' S1 c6

Flush' Start

S1 - S2 c6, c7, c9

S2 - S3 ByteOut

S3 - S4 c9

S4 - S5 ByteOut

S5 e2 Start FlushEnd, dis_b

e2' Start bp1

Таблица 10. Таблица переходов компонентного

автомата MAIN

MAIN

ai Z ai+1 wi

Start St S1 Init

St' Start -

S1 e1 S2 MPS

e1' S2 LPS

S2 (LPSOut&MPSOut)DataEnd S3 Flush

(LPSOut&MPSOut)DataEnd' S1 -

LPSOut' & MPSOut' S2 -

S3 FlushEnd Start -

FlushEnd' S3 -

5. Заключение

Научная новизна: разработана новая архитектура аппаратной реализации MQ-кодера, основанная на асинх-

ронном иерархическом управляющем автомате, состоящем из 7 параллельно работающих компонентов, которая дает возможность упростить реализацию функций переходов и выходов в целях повышения быстродействия MQ-кодера (в 4-6 раз) по сравнению с аналогичными автоматами, предложенными Andra, Chakrabarti и Acharya в [15, 18-21].

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

Литература: 1. www.mathworks.com. 2. Дьяконов В.П. MATLAB 6.5 SPl/7 + Simulink 5/6. Основы применения. Серия «Библиотека профессионала». М.: СОЛОН Пресс.-2005.800 c.3. Дьяконов В. П. MATLAB 6.5 SP1/7.0 + Simulink 5/6. Обработка сигналов и проектирование фильтров. M.: Наука, 1999. 561 с. 4. Дьяконов В. П., Круглов В. Математические пакеты расширения MATLAB. Специальный справочник. СПб.: Питер, 2001. 480 с. 5.Simulink. Simulation and Model-Based Design. Writing S-Function. Version 7. 2005. 322 p. (www.mathworks.com) 6. Simulink. Simulation and Model-Based Design. Getting Started. Version 6. 2005. 37 p. (www.mathworks.com) 7. Stateflow. For Use with Simulink. Getting Started. Version 7. 2005. 184 p. (www.mathworks.com)

8. David S. Taubman, Michael W.Marcellin. JPEG2000: image compression fundamentals, standards and practice.Boston/ Dordrecht./London: Kluwer Academic Pulishers. 2002. 774 р.

9. Миано Дж. Форматы и алгоритмы сжатия изображений в действии. Учебн. пособ. М.: Издательство Триумф. 2003. 336 с. 10. СэломонД. Сжатие данных, изображений и звука. М.: Техносфера. 2004. 368 с. 11. ISO/IeC 15444-1.-Information Technology-JPEG2000 Image Coding System-Part 1: Core Coding System. 2000.211 p. 12. ISO/IEC 15444-2. Final Committee Draft. Information Technology-JPEG2000 Image Coding System. Part 2: Extensions. 2000. 198 p.13. Tinku Acharya, Ping-Sing Tsai. JPEG2000 Standard for Image Compression. Concepts, Algorithms and VLSI Architectures.- John Wiley & Sons, Inc. 2005. 292 p.14. Serge Leef A Methodology for Virtual Hardware/Software Integration. Mentor Graphics Corporation white paper. 2003. 6 p. 15. Taubman D. High Performance Scalable Image Compression with EBCOT. IEEE Trans. IP.- Vol. 9. No. 7. 2000. P. 1158-1170.16. Соловьев В.В. Проектирование цифровых автоматов на основе программируемых логических интегральных схем. М.Горячая линия. Телеком. 2001. 636 с.17. Баранов С.И. Синтез микропрограммных автоматов. Л: Энергия. 1079. 232 с. 18. Andra K., Acharya T., and Chakraborti C. A High Performance JPEG2000 Architecture // Proc. of the IEEE Intl. Symposium on Circuits and Systems (ISCAS 2002). Scottsdale, Arizona. May 2002. P. 765-768.19. AndraK., Chakraborti C., Acharya T. A High Performance JPEG2000 Architecture. IEEE Transactions of Circuits and Systems for Video Technology. Vol. 13. N. 3. March 2003. P. 209-218.20.AndraK. , AcharyaT., Chakraborti C. Efficient VLSI Implementation ofBit-plane Coder ofJPEG2000. Proc. of the SPIE Intl. Symposium on Optical Science and Technology, Applications of Digital Image Processing XXIV. V. 4472. San Diego, July 2001. P. 246-257.21.AndraK. Wavelet and Entropy Coding Accelerators for JPEG2000. Ph.D. Dissertation. Arizona State University. December 2001. 180 p.

Поступила в редколлегию 29.11.2007

Рецензент: д-р. техн. наук, проф. Кривуля Г.Ф.

Хаханова Ирина Витальевна, докторантка кафедры АПВТ ХНУРЭ. Научные интересы: проектирование цифровых систем на кристаллах. Увлечения: английский язык, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 7021-326. E-mail: [email protected]

РИ, 2007, № 4

87

i Надоели баннеры? Вы всегда можете отключить рекламу.