Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2830.Встроенные микропроцессорные системы

..pdf
Скачиваний:
41
Добавлен:
15.11.2022
Размер:
52.65 Mб
Скачать

Можно допустить, что в этой системе целые являются 16-битны- ми, нет операционной системы, защиты памяти и что программа была откомпилирована и загружена в область C памяти.

1.Для каждой переменной n, m и a показать, где в памяти (A, B, C или D) переменные будут сохраняться.

2.Определить, что будет делать программа, если содержимое адреса 0x0010 при старте равно 0.

3.Определить, что будет делать программа, если содержимое адреса 0x0010 при старте равно 1.

3.Базовые устройства ввода-вывода встроенных систем

1. Предположим, что 4-разрядный ADC-преобразователь работает по принципу последовательных приближений. Диапазон входного сигнала от Vmin = 1 В (=0000) до Vmax = 4,75 В (=1111). Какое количество шагов используется для преобразования значений 2,25 В; 3,75 В и 1,8 В? Изобразить временную диаграмму преобразования этих значений.

4.Язык проектирования аппаратуры VHDL

1.Пусть дана реализация шины, как на рисунке.

Какое значение из множества IEEE 1164 std_logic для VHDL будет на шине (bus), если оба разрешающих входа установить в ’0’ (ena1 = ena2 = ’0’)?

Какое значение из множества IEEE 1164 std_logic для VHDL будет на шине (bus), если ena1 = ’0’, ena2 = ’1’ and f 2 = ’1’?

5.Многозадачность

1.Дать EFSM-модель функции addListener на рис. 73, подобно модели на рис. 74.

2.Допустим, что две целые глобальные переменные a и b разделяются несколькими потоками. Допустим, что lock_a и lock_b – два

191

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

1 int a, b;

12 pthread_mutex_unlock(&lock_a);

2 pthread_mutex_t lock_a

13 }

 

3 = PTHREAD_MUTEX_INITIALIZER;

14

 

4 pthread_mutex_t lock_b

15 void proc2(int arg) {

5 = PTHREAD_MUTEX_INITIALIZER;

16

pthread_mutex_lock(&lock_b);

6

 

17

b = arg;

7 void proc1(int arg) {

18

pthread_mutex_unlock(&lock_b);

8

pthread_mutex_lock(&lock_a);

19 }

 

9if (a == arg) {

10proc2(arg);

11}

Допустим, для исключения взаимоблокировки команда разработчиков договорилась, что замок b должен быть всегда взят перед замком a любым кодом, берущим оба замка. Кроме того, из-за производительности команда настаивает, что не надо излишне брать замок. Следовательно, неприемлемо модифицировать proc1 следующим образом:

1 void proc1(int arg) {

7 pthread_mutex_unlock(&lock_a);

2 pthread_mutex_lock(&lock_b);

8 pthread_mutex_unlock(&lock_b);

3 pthread_mutex_lock(&lock_a);

9 }

4 if (a == arg) {

 

5 proc2(arg);

 

6 }

 

 

 

Поток, вызывающий proc1, берет замок b излишне, когда a не равно arg. В некоторых библиотеках потоков такой код является некорректным. Поток будет блокировать попытку получить уже удерживаемый замок. Но примем для нашего случая, что если поток пытается получить ужеудерживаемый замок, тогда он немедленно предоставляет его.

Дать решение для proc1, которое минимизирует излишнее взятие замка b.

3. Реализация функции get на рис. 78 допускает более одного вызывающего get-потока. Однако, если изменить код в строках 30...32 для pthread_cond_wait на

1 if (size == 0) {

2pthread_cond_wait(&sent, &mutex);

3}

192

этот код будет работать, только еслиудовлетворяются дваусловия:

pthread_cond_wait возвращается, только если есть соответст-

вующий вызов pthread_cond_signal;

есть только один поток-потребитель.

Пояснить, почему требуется второе условие.

4.Шаблон producer/consumer, реализованный на рис. 77, имеет недостаток в том, что размер очереди, используемой для буферизации сообщений, неограничен. Программа может отказать в работе, исчерпав всю доступную память (отказ функции malloc). Написать вариант функций send и get, которыйограничивает размер буфера до 5 сообщений.

5.Альтернативная форма передачи сообщений, называемая рандеву, подобна шаблону producer/consumer на рис. 77, но это синхронная процедура, тесно связанная с потребителем. В частности, на рис. 77 функция send возвращается немедленно, независимо от того, готов ли некоторый поток принять сообщение. При коммуникации в стиле рандеву процедура send не должна возвращаться, пока процесс потребителя не достигнет соответствующего вызова get. Соответственно, нет необходимости в буферизации сообщений.

Написать реализацию send и get для рандеву.

6.Валидация и оценка проекта

1.Представим состояние кеш в случае сходящегося потока управления. На рисунке показано состояние строки 4-входовой кеш в точке схождения для каждого из двух путей.

Что получится в результате анализа необходимости и возможности состояния кеш?

2. Рассмотрим пульсирующий поток событий. Поток периодический, с периодом p. В начале каждого периода два события поступают с интервалом в d единиц времени. Построить кривые поступления для этого потока на интервале от 0 до 3*p.

3. Представим, что обработкой потока занимается процессор с максимальной производительностью b.

193

А. На что похожи кривые обслуживания, если производительность ухудшится до величины b’ из-за конфликтов в кеш?

Б. Как изменятся кривые обслуживания, если некоторый таймер будет прерывать задачи каждые 100 мс и если обслуживание прерывания выполняется 10 мс? Предполагается, что нет конфликтов в кеш.

В. На что похожи кривые обслуживания, если рассматривать конфликты в кеш, как в А, и прерывания, как в Б?

Результирующие кривые должны быть построены на интервале от

0 до 300 мс.

194

СПИСОК ЛИТЕРАТУРЫ

1.Marwedel Peter. Embedded System Design. Embedded Systems Foundations of Cyber-Physical Systems. – 2nd Ed. – Springer, 2011. – Р. 389.

2.PowerPC™ Microprocessor Family: The Programming Environments For 32-Bit Microprocessors. MPCFPE32B/AD 1/97 REV. 1. Motorolla.

3.EP93xx. User ’s Guide. Cirrus Logic, Inc. 2007.

4.C-5 Network Processor Architecture Guide, C-Port Corp. – North Andover, MA. – May 31, 2001.

5.DSP Processor Fudamentals – Architectures and Features / P. Lapsley [et al.]; IEEE Press. – New York, 1997.

6.MPC850 Family User’s Manual. Integrated Communications Microprocessor. MPC850UM/D, Rev. 1, 1/2001. Freescale Semiconductor, Inc.

7.Owens John. GPU Architecture Overview / UC Davis. – 2007. – URL: http://gpgpu.org/static/s2007/slides/02-gpu-architecture-overview-s07.pdf

8.Patterson D.A., Hennessy J.L. Computer Architecture: A Quantitative Approach. Morgan Kaufmann. – 2nd Ed. – 1996.

9.Eden M., Kagan M. The PentiumR processor with MMXTM technology // IEEE International Conference (COMPCON). – San Jose, CA, USA, 1997. – P. 260–262.

10.Таненбаум Э. Архитектура компьютера. – 5-е изд. (+CD). –

СПб.: Питер, 2007. – 844 с.

11.Cooke Jim. Flash memory 101: An Introduction to NAND flash. Micron Technology Inc. – URL:http://eetimes.com/design/memory-design/ 4009410/Flash-memory-101-An-Introduction-to-NAND-flash.

12.Flash Memory: Theory and Applications. – URL: http://www.tutori- alsweb.com/computers/flash-memory/index.htm.

13.Introduction in Embedded Programming. – URL: http://www.scriptoriumdesigns.com/embedded.

14.Агуров П. Интерфейс USB. Практика использования и программирования. – СПб.: БХВ-Петербург, 2006. – 576 с.

15.OpenHCI – Спецификация интерфейса Open Host Controller для USB. – URL: http://microcontrollerov.net/books/OpenHCI.

16.Mano M. Morris, Charles R. Kime. Logic and Computer Design Fundamentals. – New Jersey: Prentice-Hall, 1997.

195

17.Virtex-II Platform User Guide. – Vol. 2.2. – 2007. – URL: http://www.xilinx.com/support/documentation/user guides/ug002.pdf.

18.Virtex-5 user guide. – Vol. 4.7. – May, 2009. – URL: http://www.xilinx.com/support/documentation/user guides/ug190.pdf.

19.Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL. – СПб.: БХВ – Петербург, 2003. – 576 с.

20.IEEE Standard VHDL Language Reference Manual (1076–1997).

IEEE.

21.URL: http://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html

22.Шалагинов А. Изучаем Active-HDL 7.1. Урок 1. Знакомство с пакетом. Компоненты и технологии. – № 3. – 2009. – C. 134–138. – URL: http://www.kit-e.ru/assets/files/pdf/2009_03_134.pdf для 2009_03_134.pdf

23.Fowler M., Scott K. UML Distilled Applying the Standard Object Modeling Language. – Addison-Wesley, 1998.

24.Bengtsson J., Yi W. Timed automata: Semantics, algorithms and tools // ACPN 2003 / J. Desel, W. Reisig, G. Rozenberg. – Springer LNCS, 2004. – P. 87–124.

25.The synchronous ataflow language LUSTRE / N. Halbwachs [et al.] // Proc. of the IEEE Trans. on Software Engineering. – Vol. 79. – 1991. – P. 1305–1320.

26.Lustre and Scade:modeling and verifying reactive systems. – URL: http://www.general-files.com/download/gs4aa70bd1h32i0/Scade-Lustre. pdf.html.

27.Coffman E.G., Elphick M.J., Shoshani A. System deadlocks. Computing Surveys. – 3(2). – 1971. – P. 67–78.

28.Adve S.V., Gharachorloo K. Shared memory consistency models: A tutorial // IEEE Computer. – 29(12). – 1996. – P. 66–76.

29.Boehm H.-J. Threads cannot be implemented as a library // Programming Language Design and Implementation (PLDI), ACM SIGPLAN Notices. – Vol. 40(6). – 2005. – P. 261–268.

30.URL: http://www.microsoft.com.

31.URL: http://www.smorgasbordet.com/pellesc.

32.Вальпа О. Разработка программ для КПК, коммуникаторов и смартфонов с помощью Pelles C for Windows // Современная электро-

ника. – 2007. – № 7. – C. 76–78.

33.Introduction to Telelogic TauSDL Suite. 2001/09. – URL: http://www.eit. lth.se/fileadmin/eit/courses/ets150/IntroSDLSuite.pdf

196

34.Esterel Technologies. – URL: http://www.esterel-technologies.com/ products/

35.Chong Stephen. Model checking / Harvard University. – URL: http://www.seas.harvard.edu/courses/cs252/2011sp/slides/Lec16-Model- Checking.pdf

36.Model checking@CMU. (2003) / E. Clarke [et al.]. – URL: http://www-2.cs.cmu.edu/˜modelcheck/index.html.

37.System level performance analysis – the SymTA/S approach / R. Henia [et al.] // IEEE Computers and Digital Techniques. – 2005. – P. 148–166.

38.Wilhelm R. Determining bounds on execution times // Embedded Systems Handbook / R. Zurawski. – CRC Press, 2006.

39.Tiwari V., Malik S., Wolfe A. Power analysis of embedded software: A first step towards software power minimization // IEEE Trans. On VLSI Systems. – 1994. – P. 437–445.

40.Simunic T., Benini L., De Micheli G. Cycle-accurate simulation of energy consumption in embedded systems // Design Automation Conference (DAC). – 1999. – P. 876–872.

41.Chen X., Dick R., Shang L. Properties of and improvements to time-domain dynamic thermal analysis algorithms // Design, Automation and Test in Europe (DATE). – 2010.

197

Учебное издание

Гончаровский Олег Владленович, Матушкин Николай Николаевич, Южаков Александр Анатольевич

ВСТРОЕННЫЕ МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ

Учебное пособие

Редактор и корректор Е.Б. Денисова

Подписано в печать 20.11.2012. Формат 70×100/16. Усл. печ. л. 16,0

Тираж 10 экз. Заказ № 246/2012.

Издательство Пермского национального

исследовательского политехнического университета. Адрес: 614990, г. Пермь, Комсомольский пр., 29, к. 113.

Тел. (342) 219-80-33.