ĐẠI HỌC QUÔC GIA HÀ NỘI
rwi A À , > •
Tên đê tài
“Nghiên cửu mô hình tích họp hệ thống nhận dạng
thông minh vào trong chip ARM ”
M ã số: QC.07.14
Chủ nhiệm đề tài:
Th.s Vũ Quang Dũng
K hoa Công nghệ T hông tin - T rường Đại học Công nghệ
Đ A I H O C Q U Ố C G I A H À N Ộ I
T R U N G ' Á M ( H Ò N G T I N T H Ư V I Ệ N
0 0 0 6 0 0 0 0 0 5 3
H à N ô i - 2009
Báo cáo tổng họp nghiệm thu đề tài KHCN của ĐHQGHN
Mục lục
Báo cáo tổng hợp nghiệm thu đề tài KHCN của ĐHQGHN 2
Bảng giải thích các chữ viết tắ t 3
Danh sách những người tham gia thực hiện đề tài
3
Danh mục các hình 4
Tóm tắt các kết quả nghiên cứu chính của đề tà i 5
BÁO CÁO TỔNG K ẾT 6
A. Đặt vấn đề 6
B. Tổng quan các vấn đề nghiên cứ u 6
c . Mục tiêu và Nội dung Nghiên cứu của Đề tài 17
D. Địa điểm, thời gian và phương pháp nghiên cứ u 17
E. Kết quả nghiên cứu 18
F. Kết luận và kiến nghị 18
Tài liệu tham khảo 19
Bảng giải thích các chữ viết tất
TT Chữ viêt tăt Y nghĩa
1 GC
Garbage Collection - Thu thập rác
2 RTSJ
Real-Time Specification for Java
3 WCET
Worst Case Execution Time
4 JOP Java Optimized Processor
5 RISC
Reduced Instructions Set Computer
Danh sách những người tham gia thực hiện đề tài
TT
Cơ quan phối hợp Cộng tác viên
Họ và tên Chuyên ngành
1.
Đại học Công nghệ Trương Ninh Thuận TS CNTT
2. Đại học Công nghệ Nguyễn Thị Nhật Thanh ThS
CNTT
3. Đại học Công nghệ Vũ Diệu Hựơng ThS CNTT
Danh mục các hình
Hình 1. Cấu trúc chung của hệ thống thời gian thực sử dụng vi xử lý Java
Hình 2. Sử dụng bộ nhớ động trong chu kỳ thuật toán concuưent copy
Hình 3. Hệ thống vi xử lý nhúng thời gian thực Java
Hình 4. Thuật toán lập lịch thời gian thực
Hình 5. Biểu đồ thời gian thực thi hệ thống
Hình 6. Lớp đối tượng
Hình 7. Đối tượng stack
Hình 8. Thực thi của GC trong vi xử lý Java
Hình 9. Kiến trúc đồng xử lý GC
Hình 10. Kiến trúc hệ thống nhận dạng nhúng
BÁO CÁO TÓNG KẾT
A.Đặt vấn đề
Nhận dạng là một nhu cầu cần thiết trong thực tiễn, được áp dụng vào nhiều chuyên
ngành và ẵnh vực như trong xây dựng thư viện điện tử, phục vụ cho quá trình [ưu trữ hồ sơ,
bảo mật thông tin, ứng dụng trên các robot tự động tìm đường đi. Hệ thống nhận dạng thông
minh ảnh hưởng tới sự nghiên cứu các quá trinh về nhận dạng chừ viết, phân tích hình ảnh,
nhận dạng đường đi.
Một vấn đề được đặt ra trong quá trình xử lý nhận dạng là cần phải có một công cụ đặc
biệt được tích hợp hệ thống nhận dạng thông minh. Dự án sẽ tạo tiền đề khoa học cho các
quá trình xây dựng hệ thống nhận dạng chữ viết tay tiếng Việt, xây dựng hệ thống nhận dạng
thông qua camera cho các robot tự hành.
Hiện tại ờ Việt Nam chưa có sự phát triển đồng nhất về hệ thống nhận dạng, nhất là vể
nhận dạng chữ viết tay tiếng Việt và nhận dạng đuờng đi tự động. Dự án này sẽ tạo tiền đề
khả thi cho việc xây dựng một hệ thống hướng vào các khả năng nhận dạng chuyên nghiệp,
được tích hợp các chức năng chuyên môn trên một bộ vi xử lý nhúng. Với sự phát triển ngày
càng mạnh mẽ của công nghệ nhúng trên thế giới cũng như ở Việt Nam, đề án này sẽ tạo ra
một cơ sở khoa học cho các ngành nghiên cứu khác, tạo cơ sở gắn kết giữa các chuyên ngành
với nhau, tạo nên sự phân công công việc rõ ràng trong nghiên cứu và nắm bắt những lĩnh
vực khoa học mới.
B. Tổng quan các vấn đề nghiên cứu
i. Giới thiệu chung
GC là một thành phần cổt yếu trong máy ảo Java. GC có thể đáp ứng cơ chế quản lý bộ
nhớ tự động, góp phần vào thành phần chính để xây dựng các chương trình lớn. Cơ chế quản
lý bộ nhớ tự động sẽ giải phóng cho người ỉập trình các tính chất phức tạp và các lỗi sinh ra
do cung cấp bộ nhớ. Trong báo cáo này, chúng tôi đề xuất một phương thức cho phép sử
dụng tính chất của các thiết bị di động với bộ nhớ có hạn, và kết hợp với các giải pháp của hệ
thổng thời gian thực Java (RTSJ) nhàm đưa ra một cách tiếp cận mới về quản lý, điều khiển
bộ nhớ, đặc biệt là bộ nhớ cố định một cách hiệu quả nhất. Và áp dụng các phương pháp đó
vào trong xây dựng hệ thống nhận dạng chữ viết online trên các thiết bị di động, mà nền tảng
phần dưới là hệ thống thời gian thực chạy vi xử lý Java.
Nhằm tăng kích thước và độ phức tạp của hệ thống thời gian thực cứng, sử dụng trong
các thiết bị di động với bộ nhớ hạn chế như Java cards, chúng tôi cần phải cân nhắc tới chu
trình hoạt động của luồng, và phương pháp giải phỏng bộ nhớ tự động sau khì kết thúc một
chu trình. Trong hệ thống thời gian thực được thực thi bởi Java, cần phải thông qua cơ chế
lập lịch, các độ ưu tiên và GC thời gian thực nẳm trong khoảng thời gian của hệ thống và
phải thông qua khoảng thời gian thực thi xấu nhất cùa hệ thông (WCET) như trong hnh 1.
GC có thể đứng sau sau trường hợp bộ nhớ xấu nhất tiêu thụ cho các luồng, liên kết với môi
trường tối ưu của java trong hệ thống thời gian thực cứng.
Để đơn giản quá trình khởi tạo cùa một chương trình thời gian thực đơn giản, hầu hết các
đoạn code chương trinh s ẽ sử dụng tới sự quản lý GC của bộ nhớ động. Chúng tôi đưa ra 2
điểm chính sau:
• GC phải được tăng lên trong khoảng thời gian lớn nhất được cho trước.
• GC phải giữ vết của tất cả các tiến trình của chương trinh, nhàm tránh tình trạng tràn
bộ nhớ.
Để phân biệt giữ những GC khác với GC dành cho thời gian thực, chung tôi có định
nghĩa sau:
GC thời gian thực cung câp thời gian có thê dự đoán trước vê sự quàn lý bộ nhớ động,
với cơ chế bao bộ nhớ trong vùng cho phép trong liên hệ ràng buộc với thời gian sử dụng bộ
nhớ tĩnh của các luồng trong phạm vi trên.
Hình 1. Cấu trúc chung của hệ thống thòi gian thực sử dụng vi xử lý Java
Sao chép vùng nhớ được thực hiện bàng thuật toán sao chép song song, và không liên
quan tới vùng nhớ cố định. Chương trình được gọi là võrng chắc khi chương trình đó thay đổi
cây đối tượng khi GC hoạt động. Quá trình của GC được gọi là quá trinh thu dọn rác. Hình 2
mô tả sử dụng bộ nhớ động trong suốt chu kỳ thuật toán concuưent-copy.
ai the begin o f Ihe G C cyc le
u 93
91 9 -
/rnm-tpocr
tn-xpact
in th e m iddle o f the cyc le
A
93
S i 9 - h
is
a the end Ibefo re flip,'
/< S3
92 9 - h
It
i t
/5
after Ihe flip
h
h
h h
Hình 2. Sử dụng bộ nhớ động trong chu kỳ thuật toán concurrent copy
ii. Vi xử lý nhúng thòi gian thực Java
Hệ thống nhúng được phục vụ cho nhiều mục đích khác nhau. Nó được tích họp vào
trong hệ thống cùng với phần cứng và phần mềm. Phần lớn hệ thống nhúng cỏ tính chất tiết
kiệm năng lương, xử lý nhanh, bộ nhớ nhò và ngày càng gần với phần mềm.
Hệ thống nhúng sử dụng trong mục đích thời gian thực, và với các tính chất với độ thực
tế cao, xử lý đa luồng và WCET.
Với các khả năng đó, vi xử lý thời gian thực Java được lựa chọn phù hợp với các đặc
tính:
• An toàn trong bytecode
• Bytecode là chương trình chính và khó thay đổi sau khi được lập trình
• Phần lớn không có GC
• Không có quá trình chạy file class động
• WCET dễ dàng dự đoán trước
Sự tối ưu được cho ở hinh 1, Java cần phải xác định các hỗ trợ thêm mới dành cho vi xử
lý nhúng thời gian thực Java, quá trình chạy class động và sử dụng GC trong suốt quá trinh
hoạt động cùa hệ thống. Thông qua [6] mô tả quá trình tối ưu, gồm một số định nghĩa sau:
Class: file gốc sinh ra bởi quá trình biên dịch java chuẩn.
Image: đầu ra sau khi convert class và là đầu vào cho vi xử lý java.
C: c □ (loading Ư verifying u preparation ư resolution u linking ư initialization)
and c is finished by the Class Converter.
C(r|): processing T] by c.
(C(tị)): the results created by C(rj). (C(rj)) can be ©□.
Then, the optimization policy can be described as: •
If (TỊ □ class) A ( C(T|) is TRUE )
Then
Image = Image u (COi))
Else
Hình 3. Hệ thống vi xử lý nhúng thời gian thực Java
iii. Worst-case execution time (WCET)
Hệ thống GC thời gian thực dành cho vi xử lý Java phải được phân tích bởi WCET tiêu
hao cho các tiến trình và lập lịch.
Tư tưởng chính của WCET được thể hiện bởi thuật toán lập lịch thời gian thực theo hình
3 [2]. Khi phần lớn các tiến trình thời gian thực được gán để hoạt động thì quá trình tính toán
WCET thường không được quan tâm nhiều. Trong công nghiệp, quá trình kiểm thử hệ thống
dưới các điều kiện khác nhau thường cố gắng nội suy ra giá trị WCET. Khi tiếp cận với công
việc trong một khoảng thời gian, WCET thường không tuân theo sự tính toán nào. Dữ liệu
đầu vào khône mong đợi có thể là nguyên nhân làm chậm hệ thống, hơn là quá tình tính
toán kiểm thử ở hình 4 sau
R jii-nio n o to iiic
n ,- p \
u= T f s n
; = 1 '
( 7 2 - 1 )
" c
E arliest dea dlin e first
u = ỵ - f 's 1
/= ! '
L s ast sla ck tim e
slack = cl - 1 { c
T D M A (s tatic)
n
period = 2 * Q
/=1 -
Hình 4. Thuật toán lập lịch thòi gian thực
Hình 5. Biểu đồ thời gian thực thi hệ thống
Sự tin cậy và cách tiếp cận có hệ thống để tìm được giá trị WCET trong phân tích ĩnh
càng được nâng cao. Trong thực tế thì tính toán tĩnh là không đơn giản. Môi trường thời gian
thực java truyền thống thường có nhiều nguồn không thể dự đoán trước, do đó kết quả
WCET nhiều khi không khả quan. Đối với sự biên dịch just-in-time, vấn đề kỹ thuật cơ bản
dành chơ tương quan các giá trị trung bình trong máy ảo java, sẽ ảnh hường trước hết tới
hoạt động của một số luồng, làm chậm các hoạt động luồng tiếp sau. Sự phân tích tĩnh phải
Đ A I H Ọ C Q U Ố C G I A H À N Ộ l
T P Ụ N G I Ẩ M 1 H Ò N G T I N Ĩ H Ư V l Ệ N
0 0 0 ( , 0 0 0 0 0 ĩ ỉ
được tính toán cho trường hợp khi mà ước lượng về WCET là rất lớn. Nỏ có thể là nguyên
nhân do rác trong bộ nhớ, và trước tiên cần phải tẳt quá trình biên dịch just-in-time, mà có
thể dẫn đến làm chậm quá trình hoạt động. Một cách tiếp cận khác là giải quyết vấn đề với
sử dụng GC trong hệ xử lý thời gian thực java. Nó có thể kiểm soát bộ nhớ, và tăng hiệu suất
hoạt động của java bytecode.
Bộ vi xử lý hiện đại là sự đối lập với phân tích WCET. Pipeline lớn, tiên đoán trước được
các trường hợp, và giả đa mức cach có sự cải thiện lớn thông qua WCET. Phân tích WCET
phải bao gồm sự caching khoảng thời gian thậm chí là sự cố là hiếm. Vì the, GC phải hoàn
thiện trong thời gian kết thúc WCET, sau khi đọc bytecode. Nó phải chạy ở chế độ thời gian
thực để đảm bảo là các luồng kế tiếp không bị trễ, và hoạt động theo thời gian lập lịch.
iv. Hệ thống GC thời gian thực
Như đã nó về hệ GC thời gian thực, ở đây, chúng tôi sử dụng thuật toán concuưency-
copy algorithms dành cho hệ thống GC thời gian thực trong vi xử lý Java. Đây à gi ải phap
dành cho đối tượng tĩnh sử dụng bộ nhớ immortal trong RTSJ và lập lịch trong WCET.
Theo [3], độ lớn bộ nhớ heap dành cho concuưent-coping là Hcc , chứa 2 phần nhớ bằng
nhau, chu kỳ luồng GC là T q c , chu kỳ đơn period of a single của luồng mutator là TM, chu
kỳ luồng mutator I là (Ti) từ tập hợp các luồng, và bộ nhớ tính bởi luồng đơn mutator (a) và
bởi luồng mutator i (a,) từ tập hợp các luồng.
Theo đỏ, giá trik lớn nhất từ phần nhớ from-space as Mfrom giá trị lớn nhất từ phần nhớ
to-space as Mt0.
Ký hiệu dành cho copying-collector trong heap là Hcc được chia là 2 phần bàng nhau
Hfrom và HI0. Độ lớn bộ nhớ cấp phát M trong mỗi phần phải nhỏ hơn hoặc bàng Hcc/2.
Hcc = Hfrom + Ht0 > 2M
Tiên đề. đổi với một chu kỳ, bộ nhớ cấp phát M trong mỗi phần được xách định bời giá trị
dữ liệu bộ nhớ lớn nhất Lmax tại điểm xuất phát của chu kỳ đó và giá trị dữ liệu bộ nhớ lớn
nhất Amax được cấp phát bởi mutator or trong suốt chu kỳ.
M < L max + A max
Proof. Floating garbage at the end of cycle n will be detactable garbage in cycle n+1.
Gn+I = 1 ? E
Live data at the end of cycle n will be live data at the start of cycle n+1.
r n+1 I n
*-< s ta r t >-• E
The allocated memory Mfrorn in the from-space contains garbage G and the live data at the
start Ls
M from — G ■+■ L s
All new objects are allocated in the to-space. Therefore the memory requirement for the
from-space does not change during the collection cycle. All garbage G remains in the from-
space and the to-space only contains floating garbage and live data.
M t0 - ~ T j + L
At the start of the collection cycle the to-space is completely empty.
M to_s = 0
During the collection cycle all live data is copied into the to-space and new objects are
allocated in to-space.
M t0 E = L $ + A
At the end of the collector cycle the live data from the start Ls and new allocated data A
stays either live at the end LE or becomes floating garbage GE.
L s + A = L e + G e
For the first collection cycle there is no garbage (G = 0) and no live data at the start (Ls = 0),
i.e the from -space is empty (M ‘from = 0). The to-space will only contain all allocated data A1,
with A1 < Amax, and is true for cycle 1.
Under the assumption that there is true for cycle n, we must to show for cycle n+1.
M
n + 1 , _ < T _ . + A _ .
fr om — ^ m a x
M n + ,(0 < L max + A m a x
At the start of a collection cycle the spaces are flipped and the new to-space is cleared.
H
n + l - o n
from to
H n+I,0 < = 0
The from-space:
Mnfrom= G n + Lns
Mn+1from= G n+,+ L n+,s
= G 'e + L nE
= Lns + An
As Ls < Lmax and An+1 < Amax
=> Mn+1l0 < Lmax + Amax
Từ kết quả trên cho thấy sự cần thiết nâng cao bộ nhớ trong vòng lặp. Lợi ích từ thuật
toán concurrency-copying giúp giảm sinh ra các vùng nhớ tại to-space.
V . Hệ thống GC thời gian thực trên chip
Sử dụng thuật toán trên, chúng tôi đưa ra một kiến trúc phần cứng dành cho GC. Phần
cứng hỗ trợ GC đòi hỏi phải trỏ tới đối tượng tại mức độ kiến trúc. Vì thế, bộ vi xử lý không
thể nhận biết con trỏ từ phần không hồ trợ hay không thể xác định đối tượng trong bộ nhớ.
Bộ vi xử lý chính trong hệ thống này được thực thi theo kiến trúc RISC [5]. Thay vì sử dụng
tag bits để xác định con trỏ, kiến trúc này phân biệt con trỏ từ các dừ liệu bình thường không
được trò. Sừ dụng thuật toán concuưency-copying, chúng tôi chia thanh ghi dữ liệu làm 2
phần - vùng nhớ có địa chi trỏ và vùng nhớ không trỏ.Vì thể, đổi tượng được lưu trong bộ
nhớ sẽ ở trong 2 phần - phần con trò và phần dữ liệu, được thể hiện theo hình vẽ lớp đối
tượng sau.
attrib ute s
p ointe r are a
ũ a ta ar e a
———— ' '
.
—— ■
1*
* \ / / / / □
□ |D|
0 1 2 R-1 0 1 2 6-1
[71 pointer w ord
ỊÕ Ị d a ta w ord
Hình 6. Lóp đối tượng
Theo [3] và [4], chúng ta có thể xác định đối tượng stack dành cho dữ liệu động. Đối
tượng stack được kiểm soát bởi GC. Stack chia làm 2 vùng - vùng con trỏ tới stack và vùng
lưu dữ liệu (hình 7). Đ ộ lớn của vùng con trỏ bị liên quan tới đổi tượng thuộc tính K và đ ộ
lớn của vùng dữ liệu - đối tượng thuộc tính ô.
Theo [7] và sử dụns thuật toán concurrency-copying, chúng ta có thể thực thi GC, mà
trong vòng lặp, tất cả đối tượng từ root được copy từ một vùng bộ nhớ (from-space) sang
vùng bộ nhớ (to-space). Hình dưới thể hiện cách thức hoạt động của GC trong vi xử lý Java.
a itn bu ies pointer Slack a re a đ aia Slack a ia a
[, 18 Ị/I/ITTTI |q|DMol rn
0 I S-1 r. n -1 0 I á-1 6 J -t
t t
pointer S lack index (psix) data *a c* indoc (đsix)
Ị7 Ị pointer word {□ ] data word Q undefined'.Vủfd
Hình 7. Đối tượng stack
jrai-bn
_______
D
_______
H Sịsịsịnịa)
0 Z Z H ) Q ãỊTỊT)
M / M d |d ]
t
scan
w
t
tree
FROMSPACE
TOSPACE
' 8
A
/'' VI
_______
c
1*1/
J
0 7 / 7 )
ị
ỉ /
/ FBOMSPACE
: ■ i
TOSP£>CE
( Z ồ
H / d ”f t
s' z x z
t
scar,
t
tr e e
Hình 8. Thực thi của GC trong V I xử lý Java
Từ các nhận định trên, chúng tối đưa ra một kiến trúc đồng xử lý GC, kết nối vào trong
vi xử lý Java. Kiến trúc đó được thể hiện tại hình 9. Đồng xử lý được xây dựng trên kiến trúc
32 bit, chứa 32 thanh ghi, bao gồm các thanh ghi tổng quát dành cho các giá trị vi tính toán,
giao diện bộ nhớ thanh ghi dành cho nạp và lưu dừ liệu, và một số thanh ghi đặc biệt để truy
cập tới đối tượng con trỏ trong stack, và trỏ tới vi xử lý chính.
Hình 9. Kiến trúc đồng xử lý GC
vi. Giải pháp sử dụng vi xử lý Java trong nhận dạng
Trong phần này, chúng tôi đưa ra một giải pháp nhằm thiết kế hệ thống nhận dạng chừ
viết tay dành cho hệ thống thiết bị nhúng với kiên trúc hạn chế. Phương pháp sừ dụng đầu
vào là các ký tự nhận dạng. Một điểm hết sức quan trọng là chất lượng giao diện phụ thuộc
vào tần xuất chất lượng nhận dạng. Giải pháp chúng tôi đưa ra nhàm tập trung vào nghiên
cứu khả năng tối ưu của hệ thống nhận dạng trên thiết bị nhúng. Cơ sở của nghiên cứu là khả
năng lien kết người sử dụng vào trong giao diện với các quá trình thực thi tuần hoàn. Chúng
tôi sẽ sử dụng phương pháp đưa chữ viết tay có sẵn, trên cơ sở đỏ đưa ra giải pháp nhận dạng
chữ viết tay, và cơ chế thiết kế giao diện nhận dạng trên thiết bị nhúng.
Kiến trúc hoạt động đề xuất của hệ thống có thể chia ra làm ba thành phần chính: tầng
phân tích layout vật lý (physical layout analysis), tầng nhận dạng dòng (text line recognition),
và tầng mô hình hóa ngôn ngữ (statistical language modeling). Hình 10 mô tả hoạt động của
hệ thống.
- Tầng layout vaatjlys sử dụng để phân đoạn văn bản ảnh, phân dòng và xác định thứ tự
đọc văn bản.
- Tầng nhận dạng dòng sử đụng để nhận dạng văn bản text có trong dòng (dòng ăn
bản được đọc từ phải qua trái), và khả năng có thể kiểm tra văn bản nhận dạng theo
cấu trúc ngữ pháp.
Tần? mô hình hóa ngôn ngữ đặc tả các khả nãng về ngôn ngữ, từ vựng, ngữ pháp và
cấu trúc toàn văn bản.
Dòng văn bản nhận dạng bao gồm quá trình tiền xử lý, sử dụng phân đoạn văn bản và các
cấu trúc giả thuyết của văn bản. Một mặt quan trọng của hệ thống là cố gắng xác định khả
năng đáp ứng của hệ thống một cách tốt nhất thông qua từng tiến trình. Ngoài ra, nếu khả
năng cho phép về mặt thời gian và kinh phí, chúng tôi sẽ sử dụng MLP, xác định mô hình
ngôn ngữ và tối ưu Bayes.
vii. Ket luật và công việc tiếp theo
Tại báo cáo này, chúng tôi đã đưa ra một thiét kế và thực thi cùa vi xử lý Java kết hợp với
bộ đồng xử lý GC. Sự tiếp cận sử dụng WCET làm tăng khả năng dự báo các trường hợp xấu
trong hệ thống.Sự hỗ trợ mô hình lập trình động trong hệ thống thời gian thực sử dụng vi xử
lý java, nó có thể đảm bảo không hoạt động ngoài bộ nhớ trong suốt chu kỳ cùa luồng. Bộ vi
xử lý Java đảm bảo sự nguyên vẹn cùa con trỏ trong phần cứng và linh hoạt trong xừ lý GC
tại mức mã máy.
Trong thời gian tiếp theo, chúng tôi sẽ thực thi Java trên mô phỏng phần cứng. Kiểm thừ
mã Java bytecode chạy trên chip, và xử lý java card applets. Kết hợp với kiểm thử hệ thời
gian thực GC dành cho hệ thời gian thực Java cứng với hỗ trợ bộ nhớ nhỏ. Tiếp theo, chúng
tôi sẽ kết hợp quá trình xử lý nhận dạng tiếng Việt vào trong hệ thống, tích họp trên thiết bị
di động với phần xử lý cùa bộ vi xử lý thời gian thực Java.
C.Mục tiêu và Nội dung Nghiên cứu cùa Đề tài
- Xây dựng và phát triển mô hình toán học cho hệ thống.
- Xây dựng được thuật toán training cho mạng nơron trong hệ thống nhận dạng
- Các phương pháp, kỹ thuật hỗ trợ phát triển hệ thống - phương pháp porting hệ thống
iên trên môi trường phần cứng (hệ thống phần cứng xây dựng trên chip xử lý nhúng
ARM, và cài đặt hệ điều hành Embedded linux)
- Tạo ra được môi trường tích hợp hệ thống - tích hợp giữa giao thức cùa phần cứng và
phần mềm, tạo ra tầng giao thức tích hợp.
D.Địa điểm, thời gian và phương pháp nghiên cứu
- Địa điểm nghiên cứu tại bộ môn CNPM, khoa CNTT, trường Đại học Công nghệ.
- Thiết bị sử dụng nghiên cứu là Altera Cyclone II
- Sử dụng phần mềm Altera Quartus II 8.0 Web edition, Nios II EDS 8.0
E. Kết quả nghiên cứu
- Vu Quang Dung and Nguyen Viet Ha, Real-Time Garbage Collection for Java
Microprocessor, 1st International Conference on Advanced Technologies for
communications (ATC 2008), pp. 339-342, Hanoi, Vietnam, October 6-9, 2008.
- Danh mục KLTN hướng dẫn từ đề tài này được liệt kê trong phần phụ lục thống kê
KLTN.
- Kểt quả nghiên cứu của đề tài đóng góp một phần trong hình thành môn học “Lập
trình phần mềm nhúng” dành cho sinh viên chuyên ngành CNPM.
- Khả năng khả thi của đề tài nếu được đầu tư thời gian gồm:
o Xây dựng bộ vi xử lý nhúng trên cấu trúc Java,
o Cấu trúc thiết bị trên FPGA chuyên môn hóa.
o Phát triển nhận dạng chữ viết tay trên thiết bị trên.
F. Kết luận và kiến nghị
Đề tài đã tiếp cận được hướng nghiên cứu trong phát triển hệ thống nhúng. Đề tài dành
phần lớn thời gian vào nghiên cứu và xây dựng nền tảng thiết bị nhúng trước, và chì có thể
đưa ra được hướng tiếp cận về phát triển nhận dạng trên thiết bị. Đề tài đã đưa ra được khả
năng khả thi để phát triển bộ vi xử lý nhúng trên cấu trúc Java, sử dụng máy ảo Java nhằm
sinh ra các tập lệnh, và cho phép hoạt động trên các thiết bị nhúng một cách chuyên môn hóa.
Tìm hiểu được khả năng tương tác giữa phần cứng và phần mềm, cách thức phát triển bộ xừ
lý mềm (soft processor). Đề tài cũng tham gia đóng góp xây dựng môn học “Lập trình phần
mềm nhúng”, có 4 khóa luận tốt nghiệp được bảo vệ thông qua đề tài, và một báo cáo khoa
học tại hội nghị khoa học quốc tết ATC2008 về Advanced Technologies for communications.
Tài liệu tham khảo
a. Tài liệu Tiếng Việt
b. Tài liệu tiếng nước ngoài.
[1]. A nil K. Jam , Jianchang M ao, K .M . M ohiuddin, ‘A rtificial N eural N e tw o rk s A Tutoria l IE E E ,
tr.3 1 -44, 1996.
[2], B ehnke s ., P fister M . and R ojas, R ., ‘R ecognitio n o f H andw ritten ZIP C o d e s in a R eal-W orld
N on -Sta n d a rd-L ette r Sorting S y stem ’, Kluwer A cadem ic Publishers, 2000.
[3]. Dave A nderson an d G eorg e M cN eill, ‘A rtificial N eural N etw orks T e c hno logy ’, P repa red fo r
Rome Laboratory RL/C 3C G rijfiss AFB, N Y 13441-5700, tr 2-17 , 1992.
[4], D ura R .O ., H a rt P.E. and Stork D .G ., ‘P attern C lassification’, Wiley 2nd Edition, tr.2 8 2-350.
[5], Freeman J.A . and Skapura D .M ., ‘N eura l N etw orks - A lgorithm s, A pplic ations and Program m ing
T echniq u es', Addison Wesley, tr.8 9 -124, 1991.
[6]. Pratt K ., “ D ig ital Im age P rocessin g: PIK.S inside, Third E ditio n ”, Jo hn Wiley, Inc, 513-615.
[7], S.S ath iya K eerthi and Dr. P.K . Sadasiv an. N eural Networks. Prentice H all, tr. 1-142
[8]. D ylan Radcliffe, “H ardw are Synthesis From a T raditional P rogram m in g L an guage”
[9J. C hem ukin Y .V ., “N eural p rocessor - principle co n structo rs and o p tim ization”
[10 ]. Jack G anssle, “ A rt o f D esign ing Em bedded System ”
[11 ]. W ang J., Jean J.S.N . (1993). Multi-Resolution N eural Network fo r Om nifont Character
Recognition. IE E E International C o n ference on N e u ral Netw ork.
[12]. Martin Schoeberl: JOP - A Java Optimized Processor for Embedded Real-Time
Systems, 2005.
[13]. Trevor Harmon and Raymond Klefstad: Interactive Back-annotation of Worst-case
Execution Time Analysis of Java microprocessors, RTCSA 2007.
[14]. Martin Schoeberl: Real-Time Garbage Collection for Java, IEEE 2006.
[15]. Matthias Meyer: An On-chip Garbage Collection Coprocessor for Embedded Real-
Time Systems, RTCSA 2005.
[16]. Meyer, M: A novel processor architecture with exact tag-free pointer, IEEE Micro,
VO 124(3), May 2005.
[17]. Chai ZhiLei, Tang ZhiQiang, Wang LiMing and Tu ShiLiang: An Effective
Instruction Optimization Method for Embedded Real-Time Processor, ICPPW 2005.
[18]. Dijkstra, E.W., et al: On-the-fly garbage collection; an exercise in cooperation,
Comm. ACM, vol 21(11), Nov. 1978.
PHỤ LỤC
National Convention Center, Hanoi, Vietnam
October 6-9, 2008
IEEE
COMMUNICATIONS
SOCIETY
0 3 3
0 £ ) G
HO NỘI
V ietn a m N atio n a i U n iv e rsity P u W ish ars, Hanoi
Proceedings
2008 International Conference on
Advanced Technologies for
Communications
ATC 2008
Held in Conjunction with REV Meeting
October 6-9, 2008
Hanoi, Vieừiam
Toshiharu Kojim a, C huluunsukh Batzorig, and Tcidashi Fujino
O n the P erfo rm an ce o f W CD M A based E m ergency M u lti-system A ccess u tilizin g S electin g Pro per
B ase Station M echanism ____________________________
_
_______________________________________________
313
H oan g N am Nguyen, Kazunori Okada, and Osamu Takizawa
Session: Applied Electronics
Chairs: Phu Thuy Nguyen and Huu Xy Nguyen
C ontinuous A naly tic C urrent-V oltag e (I-V ) M odel for L o n g -C h annel D oped S uưoun d ing-G ate
M O SF E T s (S G M O S FE T s)
_____________________________________
_
_____________________________________
319
N am ki Cho, Seong H o Choi, Nam H o Kim, Sang-H oon Kim , an d YunSeop Yu
Sensin g M icro g ripper w ith P ID C o n ư ol
______________________________________________________________ 323
P. P han H uu, V.Q. Nguyen, T. Chu Due, and P.M. Sarro
N um eric a l D esign and P erform ance o f a V alv e less M ic ro p u m p
_______________________________________ 327
Thien X. Dinh, Van T. Dau, Y. Ogami, an d s. Sugiyam a
A S tu d y o n the Im ple m enta tio n o f Inductive Coup ler w ith Rogow ski Coil for B P L C
_________________
331
D ongseo k In, Sugoo g Shon, and Jae-Jo L ee
T herm al-Structu ral C oupled A naly sis in a 3 -DO F A cce lerom ete r
____________________________________
335
T.D. Tan. s. Roy, N.T. Long. H.H. Tue, a n dN .p . Thu'y
R eal-T im e G arbage Co llection for Java M icro p roce s s o r_______________________________________________339
Vu Q uang Dung, N guyen Viet Ha
Poster Session: Signal Processing
B urst S y nchro n ization U sin g F irst-O rder D ig ital Phase L ock e d Loop ________________________________345
Santanu Chatlopadhyav
A N ew G oo d n ess o f F it T est for H isto gram o f N etw o rk T raffic Pack e t Size P ro c e ss
__________________
349
M atjaz Fras, Joze M ohorko, and ía r ko Cuâej
A N ew W avelet-b ased W ide-band S p eech C oder __________________________________________________
__
353
P hung Trung Nghia, D o D inh Cuong, and P ham Viet Binh
C om bin ed N eu ral N etw ork s for R adar T arg e t R e cognition from R adar R ange P ro f ile s
________________
357
P h am Trung D ung
Im ple m entation o f E m bedd ed S o ftw are M odem P latf o rm
________________________
.
_______
_
__________
360
Seon Gyu K im a nd Su n g H o Cho
Poster Session: Optical Technology
Q oS-Aw are C lass G ated D B A Schem e for the E PO N System
_
______________________________________ 367
Junho H wang a nd M yungsik Yoo
A N ew A pp roach fo r T u n in g the Frequency o f an O p to-Elec ừ onic O scillator by using a S O A
_______
371
N guyen L am Duy, Bernard Joumet, Luong-Vu H ai Nam , Vu D oan Mien, a n d Vu Van Luc
A nalytical S o lutio n o f th e Rate E qu ation in D ire ct M odulation o f Sem iconducto r L a s e r
_____________
375
xvii
2 008 Inte rnatio n al C onfere n ce o n A dvanced T echnolo g ies lo r C om m unications
Real-Time Garbage Collection for
Java microprocessor
Vu Q uang D ung, N guyen V iet H a
D ep artm ent o f S oftw are E ngin eering
C ollege o f Technology, V ietnam N atio n al U n iv ersity, H anoi
d u n g v q @ v n u.edu.vn. h an v @ v nu.edu.vn
Abstract - P r o b le m i n J a v a p r o c e s s o r is s m a ll s u p p o r te d
m e m o r y , a n d t h e d e v i c e t h a t u s i n g J a v a p r o c e s s o r n e e d to
r e fre s h ( r e s ta r t ) m e m o r y m a n u a l l y in t h e e n d i n g o f o n e th r e a d .
A u to m a t ic m e m o ry m a n a g e m e n t o f g a r b a g e c o l le c tio n g r e a tly
s im p lifie s t h e d e v e l o p m e n t o f la r g e s y s t e m s , b u t fo r u s in g in
m o b ile d e v ic e , w e n e e d t o c o n t r o l t h e m e m o r y s iz e f o r it .
H o w e v e r, g a r b a g e c o lle c tio n is u s e d i n t h a t s y s te m s m u s t
r u n n i n g o n re a l - ti m e , it c a n b e s c h e d u l e d p e r io d i c a l ly in th e
s a m e w a y a s o r d i n a r y a p p l ic a t io n t h r e a d s . W e p r o v i d e an
u p p e r b o u n d f o r t h e g a r b a g e c o l le c t o r p e r i o d so t h a t th e
a p p l ic a t io n th r e a d s o n m o b i l e d e v i c e s n e v e r r u n o u t o f
m e m o r y .
I. INTRODUCTION
Garbage collection (GC) is an essential part of the Java
runtime system. GC enables automatic dynamic memory
management which is essential to build large applications.
Automatic memory management frees the programmer
from complex and error prone explicit memory
management. In our paper, vve propose the method for using
this property in the small mobile devices with limited
memory support. We using the solution to use Java for real
time systems the Real-Time Specification for Java (RTSJ)
introduces new thread types with program managed, scoped
memory for dynamic mem ory requirement. This scoped
memory (and static memory called immortal memory) is
not managed by the GC.
With increasing size and complexity o f hard real-time
systems, using in the small memory devices such as Java
cards with Java processor inside, we need consider the cycle
thread process, and how to free memory automatically for
each ending thread action. In the real-time systems that
implemented by Java provides deterministic scheduling,
priority inversion avoidance, and real-time GC is guarantee
°n the timeliness of the system and must be made with
knowledge of the w orst-case execution time (WCET) for
each tasks in Figure I. GC can stand after worst-case
memory consumptions of tasks, and linked with Java
optimizer environment in the hard real-time system.
To simplify creation of possible small real-time
; applications, most of the code should be able to use the GC
Ị.Managed heap. For a collector io be used in real-time
■ systems two points are essential:
• The GC has to be incremental with a short
maximum blocking tim e that has to be known.
• The GC has lo keep up with the garbage generated
ỉ78-1-4244-2680-5/08/S25.00 © 2008 IEEE
by the application threads, to avoid out o f memory.
To distinguish between other garbage collectors and a
collector for hard real-time system s we define a real-time
collector as follow:
A real-time garbage collector provides time predictable
automatic memory management for tasks with bounded
memory allocation rale with minimal temporal interference
to [ask that use only sialic memory.
F ig u re I T h e o verview o f real-tim e s yste m s u s in g J ava p rocesso r
The structure of this paper is following: Section 2
provides an introduction of embedded real-time Java
processor based on Java optimizer processor (JOP) in [ I ]. In
section 3, the timeliness of running threads by worst-case
execution time (WCET). In section 4, the minimum heap
size for a mark-compact and concurrency copying collector.
It is shown that the necessary heap size for a GC algorithms
using in small limited memory devices based on section 2
and section 3. In Figure 2 is shown the using o f heap during
concurrent copy collection cycle.
J Il-J K ' i r •>: | | _• C lc
in 11’
*,-Jrn «
I lv
V s ' .c
Ỉ-Ỉ’ f.t
! ; 9‘A » Hi
ij
.« . •j
J li *
rwMVp
i ■
1
f
#1 , •?*
if.
>
-
K l.'r Il J :1:p
I- i à -
'j
F igure 2 H e ap u sag e d u ring a c o ncu rren t c o p y c ollec tio n cycle
II. E M B E D D E D R E A L - T I M E J A V A P R O C E S S O R
Im b ed d ed s y s tem s a re d ifferen t fro m the o n es f o r genera l
bose. They are integrated systems with nearly changeless
[ware and hardware. Most em bedded systems have the
Iperties with low power consumption, short response
pncy, small mem ory footprint and nearly changeless
jhvare and so on.
Embedded systems used for real-time purposes, in
ỉtition, own the properties with higher reliability, multi-
jk-supporting and W CET predictability too.
\ s discussed above, it is clear that embedded real-time
ya processor should possess these properties below:
• Byte-code is nonvolatile as the firmware resided in
flash or other memory devices.
• Byte-code is application-specific and hardly
changed after programming.
• Mostly without Garbage Collector
• Without dynam ically class loading
• WCET is easier to be predicted
The optimization policy th at given in figure 1, Java need
I define the new supports for em bedded real-time Java
rocessor such as dynamically class loading or GC. Using
!] to describe the optimization policy clearly, some
Bfinitions are given:
'lass: the original class files created by the standard Java
ompiler.
(nage: the Class Converter output file that can be executed
Srectly by the Java processor.
Ị: c e (loading Ư verifying Ư preparation u resolution u
Inking u initialization) and c is finished by the Class
Eonverter.
t(r\): processing T| by c .
C(«l)): the results created by C(n). (C(r|)) can be 0 *.
rhen, the optimization policy can be described as:
fine class) A (C (n ) is T R U E)
rhea
Image = Im age Ư (C(n))
Else
Image = Image u (n)
•igure 3. E m bedded RTJ proc essor
III. WORST-CASE EXECUTION TIME
Real-time GC for Java processor must be analysis of
vorst-case memory consumptions o f tasks, and scheduling.
The major knowledge o f WCET is shown by real-time
cheduling algorithms following figure 3 in [2]. W hile most
eal-time practitioners are aware o f its significance, the job
)f calculating this W CET is often perfunctory or even
neglected. A common tactic in industry is to perfo
series to tests under varying conditions and attetnDi a
extrapolate the actual W CET from the result't0
measurements. While this approach works well for aver
response time, worst-case response time is not amenable
measurement. An unexpected set o f input data could ca
the system to react m ore slowly than was measured dun
testing, as illustrated in figure 4. “
Rati-nirmotonic
<0
i /= i f Í . . C V M
Earliest dỉúdlinỉ lirsi
" ,C-
u = T f ' < \
L s ast sla c k tim e slack = d-t-c :
II
T D M A (Siatici period = S 'Q .i
<=l
Fig ure 4. R ea l-tim e s che d u lin g a lgorithm s
F igure 5. H isto g ra m o f exe cution tim e
A more dependable and system atic approach to finding tne
W C ET involves a static analysis. In the non-trivial real
world, static analysis is not so simple. The traditional real
time Java environm ent offers m any sources o(
unpredictability that result in alarmingly pessimistic WCET
values. For instance, just-in-tim e compilation, a common
technique for im proving average perform ance in Java
virtual machines, causes the first few executions o f a task to
be slow while subsequent executions are fast. Static analyst
must account for this variance, leading to very large
estimations o f WCET. This can cause the garbage ,ựỊ
memory, and first o f all must be turn off just-in-time
compilation would merely slow down every execution-
Another approach for solving this problem is using garbage
collector in real-time Java processor systems. It can control
memory, and improving perform ance for execution time 0‘
Java byte-code.
340