мендовать использование процессоров с аппаратной поддержкой виртуализации, т.е. поддерживающих технологию 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
<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
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
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