1.2 MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.2.1 Mục tiêu đề tài Mục tiêu của đề tài là nghiên cứu và thiết kế một bộ vi xử lý có kiến trúc hỗ trợ cho việc cài đặt các mạng neuron b
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN THẾ ĐẠI DƯƠNG
THIẾT KẾ BỘ VI XỬ LÝ NHÚNG TRÊN FPGA ỨNG DỤNG TRONG KỸ THUẬT
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : PGS.TS Lê Tiến Thường
PGS.TS Nguyễn Đức Phong
Cán bộ chấm nhận xét 1 : ………
Cán bộ chấm nhận xét 2 : ………
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 07 tháng 07 năm 2007
Trang 3PHÒNG ĐÀO TẠO SĐH ĐỘC LẬP – TỰ DO – HẠNH PHÚC
Tp HCM, ngày tháng năm 2007
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Ngày, tháng, năm sinh : 05/12/1982 Nơi sinh: Biên Hòa
I- TÊN ĐỀ TÀI: Thiết kế bộ vi xử lý nhúng trên FPGA ứng dụng trong kỹ thuật mạng
neuron II- NHIỆM VỤ VÀ NỘI DUNG:
• Tìm hiểu cơ sở lý thuyết mạng neuron, thuật toán huấn luyện, tìm hiểu kiến trúc của vi xử lý và phương pháp thiết kế một bộ vi xử lý nhúng
• Xây dựng giải pháp thiết kế bộ vi xử lý phù hợp với cấu trúc mạng neuron Cài đặt thiết kế theo giải pháp trên bằng ngôn ngữ VHDL hoặc VeriLog Mô phỏng trên máy tính Tổng hợp mã nguồn và cài đặt trên FPGA Virtex II Pro
• Thiết kế ứng dụng và chương trình thử nghiệm, đánh giá kết quả, nhận xét và tổng hợp báo cáo
III- NGÀY GIAO NHIỆM VỤ: 22/02/2007
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 28/06/2007
V- CÁN BỘ HƯỚNG DẪN : PGS.TS LÊ TIẾN THƯỜNG
Trang 4LỜI CẢM ƠN
Tôi xin chân thành bày tỏ lòng biết ơn và kính trọng sâu sắc đến Thầy
PGS-TS Lê Tiến Thường và thầy PGS-PGS-TS Nguyễn Đức Phong Các Thầy đã tận
tình hướng dẫn, tạo mọi điều kiện thuận lợi về tài liệu cũng như thiết bị để tôi hoàn thành luận văn thạc sĩ này
Tôi cũng xin chân thành cảm ơn quý thầy cô ở khoa Điện-Điện tử trường Đại học Bách khoa, là những người đã truyền đạt kiến thức, định hướng cho tôi trong suốt quá trình học tập và nghiên cứu sau đại học
Con xin cảm ơn ba, mẹ và gia đình đã tạo mọi điều kiện, ủng hộ và động viên con trong suốt quá trình học tập
Cuối cùng tôi xin cảm ơn tất cả bạn bè đã giúp đỡ trong suốt khóa học và trong quá trình thực hiện luận văn
Xin trân trọng ghi nhớ
Nguyễn Thế Đại Dương
Trang 5ABSTRACT
The neural network technology is useful for many field of sciences, but it is hard to implement a neural network to the hardware because it consume much resources In this thesis, we came up with an ideal to design a powerful 16-bit micro processor (mP) which can be programmed to become any neural network The structure of the network
is stored in ROM in a special format which make it is easier to access The mP have to include a floating point unit (FPU), an integer processing unit (IPU) and a control unit (CU) The FPU was design specially to consume 1 clock-circle to calculate The IPU was given the flexible ability to access the memory Some peripheral were also support
by the mP such as Interrupt handling, UART…
The design was made by VHDL and was optimized to simulation and synthesize on Xilinx ISE, implement on FPGA Virtex II Pro The kit use to test the chip is XUPV2P
To make the test is more clearly, a special program which is running on the computer was made to communicate with the mP through RS232 interface, two small application
to test the operate was “linear function f = ax + by” and “circle recognition” The
function result and timing was used to evaluate the design
Keywords: neural networks, micro-processor, digital design, VHDL, FPGA
Trang 6TÓM TẮT LUẬN VĂN
Kỹ thuật mạng neuron có nhiều ứng dụng trong lĩnh vực nghiên cứu khoa học, nhưng việc triển khai phần cứng của mạng neuron gặp nhiều khó khăn vì đòi hỏi nhiều tài nguyên Ý tưởng của luận văn này là thiết kế một bộ vi xử lý 16-bit có khả năng lập trình thành các loại mạng neuron có kiến trúc khác nhau Cấu trúc của mạng neuron với một định dạng đặt biệt để có thể dễ dàng truy cập Bộ xử lý bao gồm một bộ xử lý số thực (FPU), một bộ xữ lý số integer (IPU) và một bộ điều khiển (CU) Bộ FPU được thiết kế đặt biệt để tính toán trong 1 xung clock Bộ IPU được cung cấp khả năng linh động trong việc truy cập bộ nhớ Một số ngoại vi cũng được hỗ trợ như bộ quản lý ngắt,
bộ UART…
Thiết kế được viết bằng ngôn ngữ mô tả phần cứng VHDL, mô phỏng và tổng hợp trên phần mềm Xillinx ISE, cài đặt trên FPGA Virtex II Pro Kit sử dụng để kiểm tra chip thiết kế là XUPV2P Để hỗ trợ việc thử nghiệm, luận văn cũng bao gồm thiết kế một chương trình chạy trên máy tính thực hiện việc giao tiếp với bộ vi xử lý qua giao diện RS-232 Hai ứng dụng để thử nghiệm hoạt động của bộ vi xử lý là “hàm tuyến tính f =
ax + by” và “nhận dạng đường tròn” Kết quả logic và định thời được dùng để đánh giá thiết kế
Từ khóa : mạng neuron, vi xử lý, thiết kế mạch số, VHDL, FPGA
Trang 7DANH SÁCH CÁC HÌNH
Hình 3-1 : Cấu trúc vật lý của MOSFET : (a) kênh n, (b) kênh p 14
Hình 3-2 : NMOS transistor 14
Hình 3-3 : PMOS transistor 14
Hình 3-4 : Cổng NOT : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 15
Hình 3-5 : Cổng NAND : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 15
Hình 3-6 : Cổng AND : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 16
Hình 3-7 : Bộ MUX 2-to-1 : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 17
Hình 3-8 : Bộ shifter/rotator 4-bit : (a) ký hiệu logic, (b) bảng hoạt động, (c) cấu tạo 17
Hình 3-9 : Bộ D-Latch : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 18
Hình 3-10 : Bộ D flip-flop : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 19
Hình 3-11 : Thanh ghi 4-bit : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo 19
Hình 3-12 :Bộ nhớ 4x4 : (a) memory cell, (b) cấu tạo bộ nhớ 4x4 từ MC 20
Hình 3-13 : Khối chức năng cơ bản của một bộ vi xử lý 21
Hình 3-14 : định địa chỉ trực tiếp 23
Hình 3-15 : định địa chỉ gián tiếp 23
Hình 3-16 : định địa chỉ theo chỉ số 24
Hình 3-17 : định địa chỉ tương đối 24
Hình 3-18 : giao tiếp với bộ nhớ 25
Hình 3-19 : kiến trúc one-bus 26
Hình 3-20 : kiến trúc two-bus 26
Hình 3-21 : control unit 28
Hình 3-22 : FSM control unit 28
Hình 4-1: Kiến trúc tổng quát của một FPGA 31
Trang 8Hình 4-2: Cấu trúc một khối CLB của hãng Xilinx 32
Hình 4-3: Kiến trúc khối I/O trên FPGA của hãng Xilinx 32
Hình 4-4: Quá trình thực thi FPGA 33
Hình 4-5: Quá trình tổng hợp trong thiết kế phần cứng bằng VHDL 34
Hình 4-6: Mô tả mức chuyển thanh ghi 34
Hình 4-7: Các bước tổng hợp mô tả VHDL RTL 35
Hình 4-8: Kiến trúc tổng quát của Virtex-II Pro 36
Hình 4-9: Sơ đồ khối board XUP Virtex II Pro Development System 37
Hình 5-1 : Ý tưởng thiết kế 39
Hình 5-2 : tiến trình thiết kế 40
Hình 5-3 : Tổ chức ROM 41
Hình 5-4 : tổ chức của NNA 41
Hình 5-5 : frame LA 41
Hình 5-6 : mô hình hệ thống (Top - Level) 43
Hình 5-7 : Định dạng mã lệnh 45
Hình 5-8 : Khối mP 50
Hình 5-9 : Sơ đồ chức năng khối mP 50
Hình 5-10 : cấu trúc thiết kế mP 51
Hình 5-11: cấu trúc cây thiết kế 52
Hình 5-12 : Bộ IPU 54
Hình 5-13 : cấu trúc của thiết kế IPU 56
Hình 5-14 : Kết quả mô phỏng IPU 59
Hình 5-15 : Kết quả mô phỏng IPU 59
Hình 5-16 : Kết quả mô phỏng IPU 60
Hình 5-17 : Kết quả mô phỏng IPU 61
Hình 5-18 : Kết quả mô phỏng IPU 61
Trang 9Hình 5-19 : Bộ FPU 62
Hình 5-20 : cấu trúc thiết kế bộ FPU 63
Hình 5-21 : kết quả mô phỏng FPU 65
Hình 5-22: kết quả mô phỏng FPU 65
Hình 5-23: kết quả mô phỏng FPU 66
Hình 5-24 : Bộ CU 66
Hình 5-25 : sơ đồ khối control unit được thiết kế 67
Hình 5-26 : sơ đồ trạng thái control unit 68
Hình 5-27 : Sơ đồ trạng thái bộ UART thu 70
Hình 5-28 : Sơ đồ trạng thái bộ UART phát 70
Hình 5-29 : Sơ đồ khối kết nối của bộ điều khiển với bộ UART thu và UART phát 71
Hình 6-1 : mô hình thử nghiệm 72
Hình 6-2 : Sơ đồ mạch khối tạo ngắt từ switch 73
Hình 6-3 : giao thức bắt tay giữa NNmP Tester và FPGA .74
Hình 6-4 : mạng neuron thử nghiệm 75
Hình 6-5 : giải thuật chương trình phục vụ ngắt huấn luyện 75
Hình 6-6 : Giải thuật huấn luyện 76
Hình 6-7 : Giải thuật vận hành 77
Hình 6-8 : Giao diện chương trình NNmP Tester 78
Hình 6-9 : tiến trình hoạt động của NNmP Tester 79
Hình 6-10: kết quả thử nghiệm với ứng dụng line recognition 84
Hình 6-11: kết quả thử nghiệm với ứng dụng line recognition 85
Hình 6-12: kết quả thử nghiệm với ứng dụng line recognition 86
Hình 6-13: kết quả thử nghiệm với ứng dụng circle recognition 87
Hình 6-14: kết quả thử nghiệm với ứng dụng circle recognition 88
Trang 10DANH SÁCH CÁC BẢNG
Bảng 4-1: Các thông số cho họ Virtex-II Pro XC2VP30-FF896 37
Bảng 5-1 : Các thành phần của cây thiết kế 53
Bảng 5-2: Từ điều khiển của IPU có độ dài 32 bit : 57
Bảng 5-3: Từ điều khiển của bộ FPU dài 17 bit 64
Bảng 5-4: Bảng địa chỉ vector ngắt ngoài 69
Trang 11MỤC LỤC
DANH SÁCH CÁC HÌNH III DANH SÁCH CÁC BẢNG VI MỤC LỤC VII
PHẦN A
CƠ SỞ LÝ THUYẾT
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 KHÁI QUÁT VẤN ĐỀ 1
1.2 MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1
1.2.1 Mục tiêu đề tài 1
1.2.2 Đối tượng và phạm vi nghiên cứu 2
1.3 NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2
1.3.1 Nội dung nghiên cứu 2
1.3.2 Phương pháp nghiên cứu 2
1.4 Ý NGHĨA ĐỀ TÀI 3
CHƯƠNG 2: MẠNG NEURON 4
2.1 GIỚI THIỆU CHUNG 4
2.2 MÔ HÌNH NHÂN TẠO CƠ BẢN 4
2.2.1 Một số hàm truyền 5
2.3 PERCEPTRON ĐƠN 7
2.3.1 Giải thuật học perceptron Mays 8
2.3.2 Perceptron với hàm truyền Sigmoid 9
2.3.3 Perceptron đa lớp (MLP) 9
2.4 BACKPROPAGATION 9
2.4.1 Giải thuật backpropagation cơ bản cho perceptron đa lớp feedforward 9
2.4.2 Các giải thuật học Backpropagation tăng tốc 11
CHƯƠNG 3: MẠCH SỐ VÀ VI XỬ LÝ 13
3.1 MẠCH LOGIC TỔ HỢP 13
3.1.1 Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET) 13
Trang 123.1.3 Cổng NAND 15
3.1.4 Cổng AND 16
3.1.5 Cổng NOR và OR 16
3.1.6 Bộ dồn kênh (Mux) 16
3.1.7 Bộ dịch/xoay (shifter/rotator) 16
3.2 MẠCH LOGIC TUẦN TỰ 18
3.2.1 Bộ Latch 18
3.2.2 Flip-Flop 19
3.2.3 Thanh ghi 19
3.3 BỘ NHỚ 20
3.3.1 Bộ nhớ RAM 20
3.3.2 Bộ nhớ ROM 20
3.4 KIẾN TRÚC VI XỬ LÝ 21
3.4.1 Kiến trúc cơ bản 21
3.4.2 Tập lệnh 21
3.4.3 Các cơ chế định địa chỉ 22
3.4.4 Giao tiếp với bộ nhớ 24
3.4.5 Excution Unit 25
3.4.6 Control Unit 27
3.4.7 Mô tả hoạt động của vi xử lý 29
CHƯƠNG 4: KỸ THUẬT THIẾT KẾ PHẦN CỨNG TRÊN FPGA 30
4.1 GIỚI THIỆU 30
4.2 KIẾN TRÚC FPGA 30
4.3 QUÁ TRÌNH THỰC THI FPGA 32
4.4 TỔNG HỢP THIẾT KẾ 33
4.5 BOARD XUP VIRTEX II PRO DEVELOPMENT SYSTEM 35
PHẦN B THIẾT KẾ BỘ VI XỬ LÝ CHƯƠNG 5: THIẾT KẾ 39
5.1 Ý TƯỞNG THIẾT KẾ 39
5.2 TIẾN TRÌNH CỦA THIẾT KẾ 40
5.3 THIẾT KẾ PHƯƠNG THỨC TỔ CHỨC DỮ LIỆU TRONG ROM 41
Trang 135.3.1 ISA ( Initate Services Area) 41
5.3.2 NNS (Neural Network Services) 41
5.3.3 NNA (Neural Network Architechture) 41
5.3.4 NNP (Neural Network Program) 42
5.4 THIẾT KẾ MÔ HÌNH HỆ THỐNG (TOP-LEVEL) 42
5.5 THIẾT KẾ HỆ THỐNG CÁC THANH GHI 43
5.5.1 Các thanh ghi Neuron (Nreg) 43
5.5.2 Tập thanh ghi hệ thống 44
5.5.3 Thanh ghi đện dữ liệu nối tiếp 44
5.5.4 Tập thanh ghi hỗ trợ tính toán 44
5.6 THIẾT KẾ TẬP LỆNH 45
5.6.1 Định dạng mã lệnh 45
5.6.2 Mã hóa thanh ghi 45
5.7 THIẾT KẾ KHỐI mP 50
5.7.1 Cấu trúc thiết kế khối mP 51
5.7.2 Cấu trúc cây thiết kế 52
5.8 THIẾT KẾ BỘ XỬ LÝ SỐ INTEGER (IPU) 54
5.8.1 Chức năng 54
5.8.2 Cấu trúc thiết kế 55
5.8.3 Từ điều khiển 57
5.8.4 Kết quả mô phỏng thử nghiệm IPU 58
5.9 THIẾT KẾ BỘ XỬ LÝ SỐ DẤU CHẤM ĐỘNG (FPU) 62
5.9.1 Chức năng 62
5.9.2 Cấu trúc thiết kế 62
5.9.3 Từ điều khiển 64
5.9.4 Kết quả mô phỏng thử nghiệm FPU 64
5.10 THIẾT KẾ CONTROL UNIT (CU) 66
5.10.1Sơ đồ chức năng 66
5.10.2Sơ đồ trạng thái 68
5.11 THIẾT KẾ NGẮT 69
5.11.1Ngắt ngoài 69
5.11.2Ngắt nối tiếp 69
5.12 THIẾT KẾ BỘ (UART) 70
Trang 145.12.1Bộ UART thu 70
5.12.2Bộ UART phát 70
5.12.3Bộ điều khiển UART 71
CHƯƠNG 6: TỔNG HỢP THIẾT KẾ, THỬ NGHIỆM VÀ KẾT QUẢ 72
6.1 THIẾT KẾ MÔ HÌNH THỬ NGHIỆM 72
6.1.1 Mô hình kết nối 72
6.1.2 Quy trình thử nghiệm 73
6.2 MẠNG NEURON THỬ NGHIỆM 74
6.3 CHƯƠNG TRÌNH HUẤN LUYỆN 75
6.4 CHƯƠNG TRÌNH VẬN HÀNH 76
6.5 ỨNG DỤNG THỬ NGHIỆM 1 76
6.6 ỨNG DỤNG THỬ NGHIỆM 2 78
6.7 CHƯƠNG TRÌNH HỖ TRỢ THỬ NGHIỆM NNmP TESTER 78
6.8 TỔNG HỢP THIẾT KẾ VÀ KẾT QUẢ 79
6.8.1 Tổng hợp thiết kế 79
6.8.2 Mạch thiết kế 80
6.8.3 Kết quả thử nghiệm 84
CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG MỞ RỘNG 90
7.1 KẾT LUẬN 90
7.2 HƯỚNG MỞ RỘNG 90
TÀI LIỆU THAM KHẢO 91
PHẦN C PHỤ LỤC PHỤ LỤC A 1
PHỤ LỤC B 3
Trang 15-PHẦN A
LÝ THUYẾT CƠ SỞ
Trang 16CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 KHÁI QUÁT VẤN ĐỀ
Kỹ thuật vi xử lý ngày nay đóng một vai trò quan trọng trong nhiều lĩnh vực khoa học kỹ thuật Đặc biệt là trong lĩnh vực robot thông minh và trí thông minh nhân tạo Để các robot và các hệ thống có thể mô phỏng được cách cư xử của chúng ta thì cần thiết phải cung cấp cho các robot, hệ thống đó bộ xử lý có khả năng xử lý dữ liệu tương tự theo cách thức của chúng ta Kỹ thuật mạng neuron
Với kiến trúc linh động và đặc biệt là khả năng lập trình được của vi xử lý, vấn
đề có thể được giải quyết bằng cách cài đặt mạng neuron vào vi xử lý (hoặc vi điều khiển) đa dụng Tuy nhiên, việc cài đặt một mạng neuron lên một bộ vi xử
lý (hoặc vi điều khiển) rất phức tạp và khó bảo trì mã cũng như nâng cấp Mặt khác, các mạng neuron thường chiếm nhiều tài nguyên dẫn đến việc các bộ vi xử
lý (hoặc vi điều khiển) đa dụng này không đáp ứng được Giải pháp cho vấn đề trên được đề nghị ở đây là thiết kế một bộ vi xử lý chuyên dụng cho mạng neuron, có kiến trúc phần cứng hỗ trợ riêng cho việc tổ chức một mạng neuron
Bộ vi xử lý này cũng phải có khả năng tổ chức thành bất kỳ một dạng mạng neuron nào thông qua việc lập trình
1.2 MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
1.2.1 Mục tiêu đề tài
Mục tiêu của đề tài là nghiên cứu và thiết kế một bộ vi xử lý có kiến trúc
hỗ trợ cho việc cài đặt các mạng neuron bất kỳ (trong khuôn khổ đề tài, vi
xử lý này được gọi tắt là vi xử lý neuron) Thiết kế được mô tả bằng ngôn ngữ phần cứng VHDL hoặc VeriLog và được cài đặt trên FPGA
Trang 171.2.2 Đối tượng và phạm vi nghiên cứu
Đề tài tập trung vào việc nghiên cứu các mạng neuron và kiến trúc vi xử
lý Xây dựng phương án để giải quyết bài toán mô hình lại kiến trúc của mạng neuron trên kiến trúc của một bộ vi xử lý Kiến trúc của bộ vi xử lý này (tập thanh ghi, tập lệnh,…) phải được thiết kế để thực hiện phương án
đã đề ra
Việc thiết kế sẽ giới hạn cấu trúc phần cứng lại để tiết kiệm chi phí Tuy nhiên, bản thiết kế vẫn phải đảm bảo được chức năng cơ bản là lập trình được thành các mạng neural
Thiết kế bao gồm cả tập lệnh cơ bản cho bộ vi xử lý
Thiết kế được cài đặt và thử nghiệm trên FPGA
1.3 NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1.3.1 Nội dung nghiên cứu
Đề tài bao gồm các nội dung nghiên cứu :
- Tìm hiểu cơ sở lý thuyết các lọai mạng neuron và các thuật toán huấn luyện
- Tìm hiểu kiến trúc của vi xử lý và phương pháp thiết kế một bộ vi
- Tổng hợp mã nguồn và mô phỏng trên máy tính
- Tổng hợp mã nguồn và cài đặt trên FPGA
- Đánh giá kết quả, nhận xét và tổng hợp báo cáo
1.3.2 Phương pháp nghiên cứu
Đề tài tiếp cận các phương pháp nghiên cứu sau đây :
- Tiếp cận lý thuyết mạng neuron, các loại mạng và thuật toán huấn luyện
- Tiếp cận kiến trúc của vi xử lý và phương pháp thiết kế một bộ vi xử
Trang 18- Tiếp cận ngôn ngữ VHDL (hoặc VeriLog) và kỹ thuật thiết kế mạch logic
- Thực hiện thiết kế theo phương pháp Top-Down design
- Đánh giá kết quả qua Test bench trên máy tính
- Tiếp cận các kỹ thuật tối ưu mã nguồn cho việc cài đặt trên FPGA
- Đánh giá kết quả trên việc chạy giả lập trên FPGA
1.4 Ý NGHĨA ĐỀ TÀI
Đề tài có ý nghĩa thực tiễn trong việc mở rộng ứng dụng mạng neuron Các chip
vi xử lý có thể lập trình thành bất kỳ một mạng neuron nào và đặc biệt có khả năng lập trình lại giúp giảm chi phí khi cần thay thế hệ thống Mặt khác, với kiến trúc của vi xử lý, các chíp này có thể dễ dàng tích hợp vào các ứng dụng và thiết
kế khác, phù hợp cho công tác học tập, nghiên cứu mạng neuron cũng như thuận tiện và nhanh chóng cho việc triển khai các mạng neuron
Về mặt kinh tế, các chip vi xử lý neuron nếu được sản xuất hàng loạt sẽ có giá thành rẻ hơn nhiều so với việc thiết kế một bộ neuron riêng cho ứng dụng Việc nâng cấp mới mạng neuron cũng không cần phải thay thế lại bộ neuron mà chỉ đơn giản là lập trình lại
Đề tài mở ra một hướng trong việc làm mềm hóa các kiến trúc phức tạp Bằng cách xây dựng một bộ vi xử lý chuyên dụng cho một số ứng dụng Giúp làm giảm giá thành và thêm khả năng linh động cho hệ thống
Trang 19CHƯƠNG 2 MẠNG NEURON
2.1 GIỚI THIỆU CHUNG
Neural Networks trong một vài năm trở lại đây đã được nhiều người quan tâm và
đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, Neural Networks đều có thể ứng dụng được Sự thành công nhanh chóng của mạng Neural Networks có thể là do một số nhân tố chính sau:
Năng lực : Neural Networks là những kỹ thuật mô phỏng rất tinh vi, có khả năng
mô phỏng các hàm cực kỳ phức tạp Đặc biệt, Neural Networks hoạt động phi tuyến Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối ưu hóa được biết nhiều nhất
Dễ sử dụng : Neural Networks có tính học theo các ví dụ Người sử dụng Neural Networks thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện
để có thể tự học cấu trúc của dữ liệu Mặc dù người sử dụng làm tất cả những điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và
có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách áp dụng thành công Neural Networks vẫn thấp hơn nhiều những người sử dụng các phương pháp thống kê truyền thống…
Neural Networks dựa trên việc mô phỏng cấp thấp hệ thống neuron sinh học Trong tương lai với sự phát triển mô phỏng neuron sinh học, chúng ta có thể có loại máy tính thông minh thật sự
2.2 MÔ HÌNH NHÂN TẠO CƠ BẢN
Neuron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các neuron khác trong mạng) Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số), những trọng số này tương ứng với tác dụng synapse trong neuron sinh học Mỗi neuron cũng có một giá trị ngưỡng
Tín hiệu được truyền qua hàm kích hoạt (hay còn gọi là hàm truyền) tạo giá trị ngõ ra neuron
Nếu sử dụng hàm truyền nấc (nghĩa là ngõ ra neuron là 0 nếu ngõ vào nhỏ hơn 0,
và là 1 nếu ngõ vào lớn hơn hay bằng 0) thì neuron hoạt động giống như neuron sinh học Thực tế, hàm nấc ít khi sử dụng trong mạng trí tuệ nhân tạo Lưu ý rằng trọng số có thể âm, nghĩa là synapse có tác dụng kiềm chế hơn là kích hoạt neuron, các neuron kiềm chế có thể tìm thấy trong bộ não
Trang 20Hình 2-1: một neuron cơ bản
Neuron có một ngưỡng bias b được giả sử như là một input với trọng số (weight
= b) n (net) là tổng của các tích giữa input (i) và trọng số (w) : [2]
n = w1i1 + w2i2 + … + wRiR + b (2.1) Ngõ ra của neuron (a) là kết quả của hàm truyền F :
2.2.1 Một số hàm truyền
Hàm hoạt động (hàm truyền) có thể là hàm tuyến tính hay phi tuyến Có nhiều dạng hàm khác nhau, và việc lựa chọn phụ thuộc vào bài toán cụ thể mà neural phân giải
Trang 21
Ngõ ra của hàm Hard Limiter nhị phân :
ngõ ra của neural thứ q là :
( )
1 0{ 0 0
với α là thông số độ dốc của hàm sigmoid nhị phân Thay đổi
thông số này hình dạng của hàm truyền cũng thay đổi như trên hình (2.3.3b)
Đối với dạng lưỡng cực, ngõ ra của neural thứ q sẽ là :
( ) tanh( ) 1 22
1
q q
a
-
+ (2.7)
Ở trên mô tả các neuron đơn lẻ Trong thực tế các neuron được kết nối với nhau
Khi mạng hoạt động, chúng phải có ngõ vào (mang giá trị hoặc biến của thế giới
thực) và ngõ ra (dùng để dự báo hoặc điều khiển) Ngõ vào và ngõ ra tương ứng
với các neuron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển
cánh tay Tuy nhiên chúng còn có các neuron ẩn đóng vai trò ẩn trong mạng
Ngõ vào, neuron ẩn và ngõ ra cần được kết nối với nhau
Vấn đề chính ở đây là hồi tiếp Một mạng đơn giản có cấu trúc tiến : tín hiệu đi
vào ở ngõ vào, qua các neuron ẩn và cuối cùng đến các neuron ngõ ra Cấu trúc
như thế chạy ổn định Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược
trở về các neuron trước đó) mạng có thể chạy không ổn định và dao động rất
Trang 22phức tạp Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế
Mạng Neural Networks tiến cho như hình dưới Các neuron được sắp xếp theo cấu trúc liên kết lớp riêng biệt Lớp ngõ vào không phải là neuron thực : các neuron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào Các neuron lớp ẩn và lớp ngõ ra được kết nối với tất cả các neuron lớp trước đó Cũng như vậy chúng ta có thể định nghĩa mạng có các kết nối một phần với một vài neuron trong lớp trước đó; tuy nhiên, trong hầu hết các ứng dụng mạng có kết nối đầy đủ vẫn tốt hơn
Hình 2-2 : Cấu trúc Neural Networks tiến
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các neuron ngõ vào,
và sau đó các neuron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt Mỗi neuron tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các neuron lớp trước đó, và trừ cho ngưỡng Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra giá trị ngõ ra của neuron Khi toàn bộ mạng đã hoạt động, các ngõ ra của lớp ngõ ra hoạt động như ngõ ra của toàn mạng
2.3 PERCEPTRON ĐƠN
Perceptron đơn là thành phần có ảnh hưởng nhiều nhất đối với mạng neural Mạng neuron perceptron đơn cho trên hình 2.1 Phần lớn các perceptron được huấn luyện theo giải thuật giám sát, tuy nhiên cũng có một số sử dụng giải thuật self-organizing
Ngõ vào của Perceptron mang giá trị nhị phân và không thêm vào giá trị ngưỡng Ngõ ra của neural trong khoảng [-1 1] Đây là ngõ ra của hàm Hard limiter đối xứng( hay tansig), chính là bộ lượng tử, và ngõ ra này được trừ với ngõ ra mong muốn d (trong khoảng [-1 1]) tạo nên lỗi lượng tử e Lỗi lượng tử này dùng để điều chỉnh trọng số của neural (giải thuật học perceptron) được cho như sau:
Trang 23với lỗi lượng tử được xác định từ:
e(k)=d(k) + sgn[wT(k)x(k)] = d(k)-y(k) (2.9)
Sự lựa chọn thông số học α không ảnh hưởng đến sự ổn định của giải thuật học
Perceptron Tuy nhiên α ảnh hưởng đến tốc độ hội tụ Giải thuật học Perceptron
được xem là giải thuật phi tuyến vì lỗi lượng tử được sử dụng thay vì là lỗi tuyến tính
Giải thuật Perceptron thực hiện cập nhật trọng số cho đến khi tất cả các mẫu ngõ vào được phân loại đúng Khi đó, lỗi lượng tử sẽ bằng 0 đối với tất cả các mẫu ngõ vào huấn luyện và không điều chỉnh trọng số
2.3.1 Giải thuật học perceptron Mays
Mays đưa ra hai sửa đổi đối với giải thuật học Perceptron cơ bản : Giải thuật thích nghi trọng số tăng dần do Mays đưa ra như sau:
2 2
) (
) ( ) ( ) (
2
* ) (
) ( ) ( ) (
k x
k x k d k w
k x
k x k e k w
αα
γ
γ
<
≥)(
)(
k v
k v
(2.10) với e(k) là lỗi lượng tử, x(k) là ngõ vào thứ k, d(k) là ngõ ra mong muốn
và v(k) là ngõ ra của bộ cộng và là ngõ vào của hàm truyền
Mays đưa ra một định nghĩa deadzone là khoảng giá trị ngõ ra thỏa
|v(k)<γ Nếu deadzone bằng 0 thì giải thuật Mays sẽ trỡ thành dạng chuẩn hóa của giải thuật (5-1) Nếu các mẫu huấn luyện cách đều thì giải thuật Mays luôn hội tụ và có thể phân chia các mẫu với một số bước hữu hạn
Giải thuật giản bổ sung ( modified relaxation algorithm)
đảm bảo hội tụ và có thể tách bất kỳ tập các mẫu ngõ vào cách nhau tuyến tính nào với một số hữu hạn các bước
Trang 242.3.2 Perceptron với hàm truyền Sigmoid
Xét perceptron đơn giản với hàm hoạt động sigmoid như hình vẽ bên dưới Hình (2.7.1) minh họa cho n ngõ vào với neural thứ q Trong trường hợp này giải thuật học dựa vào phương pháp steepest Giải thuật này như sau:
wq(k+1) = wq(k) + μα e(k)[1-y2q(k)]x(k) (2.12) với eq(k) = dq(k)-yq(k)
1
) ( )
là tất cả các neural trong một lớp liên kết với tất cả các neural ở lờp kế cận qua các nhánh, và qua các nhánh này chỉ truyến thông tin theo một hướng gọi là “feedorward direction” Các nhánh này cùng với các trọng
số synapse có thể được thay đổi theo các quy luật học đã được định nghĩa
2.4 BACKPROPAGATION
Backpropagation là thuật giải học được sử dụng phổ biến nhất trọng các mạng neural hiện nay Ứng với hại tập dữ liệu vào/ra cho trước, giải thuật sẽ điều chỉnh trọng số synapes của mạng để làm tối thiểu hóa sự khác biệt giữa ngõ ra thực sự và ngõ ra mong muốn
2.4.1 Giải thuật backpropagation cơ bản cho perceptron đa lớp
feedforward
Để đơn giản, trong phần này ta sẽ trình bày quy luật học của mạng perceptron đa lớp (MLP: multilayer perceptron) có ba lớp ẩn và một lớp ngõ ra
Giải thuật backpropagation chuẩn cho huống luyện MLP dựa vào phương pháp steeppest descent gradient nhằm tối thiểu hoá hàm năng lượng đặc trưng cho lỗi tức thời:
Eq=1/2(dq-x(out3))T(dq-x(out3))=1/2∑
=
−
s
n h
out
qh x d
1
2 ) 3 ( ) (
(2.14)
Trang 25với dq là ngõ ra mong muốn của mạng ứng với mẫu vào thứ q và x(out3)=yq
là ngõ ra thực sự của mạng
Hình 2-3 : mạng perceptron đa lớp
Quy luật học cho bật kỳ lớp nào trong mạng được cho phép như sau:
) ) )
s n
q s s
y
w
E w
δ
δμ
i out j
i out
j x
δμ
Phương trình cập nhật trọng số cho các lớp ẩn
) 2 (
ij
w (k+1)=Δw ij(2)(k)+ ( 2 )
) 2 ( ) 2 (
i out
j x
δ
Ta nhận thấy hai phương trình cập nhật trọng số cho lớp ngõ ra và lớp ẩn
có dạng giống nhau Chúng chỉ khác nhau ở cách tính toán lỗi cục bộ(
local error) Đố với lớp ngõ ra , lỗi này chính là sự sai biệt giữa ngõ ra
∑
∑
n1,N
nN,1
Trang 26
mong muốn v2 ngõ ra thực tế đố với lớp ẩn, lỗi này là sự sai khác giữa ngõ ra mong muốn và ngõ ta thực tế của từng neural cụ thể Torng quá trìnhhuấn luyện, ngõ ra mong muốnn của các neural lớp ẩn không biết trước, ví thế lỗi này phải được dự đoán trong biểu thức tín hiệu lỗi của các neural kết nối
Phương trình (2.18) có thể tổng quát hoá cho bất kỳ lớp ẩn nào như sau:
i out
s j
s hj
Tóm tắt Cho Giải thuật Backpropagation chuẩn
Bước 1: Khởi tạo trọng số mạng với giá trị nhỏ
Bước 2: Từ ập các giá trị vào/ra huấn luyện , đưa vào một mẫu ngõ vào
ngõ ra thoả mãn một độ chính xác đã được định trước
2.4.2 Các giải thuật học Backpropagation tăng tốc
2.4.2.1 Giải thuật conjugate gradient backpropagation cho
perceptron đa lớp feedforward
Phương pháp conjugate gradient là một kỹ thuật phổ biến cho các vấn đề tối ưu khác nhau Phương pháp này đạt được một sự thoả hiệp tốt
Trang 27giữa sự đơn giản hoá giải thuật steepest descent và tốc độ hội tụ bậc hai của phương pháp Newton
Sau đây là giải thuật cho phương pháp conjugate gradient áp dụng cho các phương trình thông thường
Bước 1: Khởi tạo các thành phần của vector trọng số w i( )s (0)
đến các giá trị nhỏ bất kỳ
Bước 2: Đặt k = 0, tính toán hướng liên hợp ban đầu dovà
vector độ lợi g0 như sau
Bước 3: Xác định hệ số vector liên hợp
Bước 4: Cập nhật các vector trọng số
Bước 5: Xác định độ lợi mới
Bước 6: Xác định chiều gradient liên hợp mới
Bước 7: Đặt k = k +1 và kiểm tra điều kiện thoát Nếu k < n
trở lại bước 3, nếu không dừng lại
Trang 28CHƯƠNG 3 MẠCH SỐ VÀ VI XỬ LÝ
3.1 MẠCH LOGIC TỔ HỢP
3.1.1 Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET)
MOSFET hoạt động như là một switch điều khiển điện áp với ba cực: source, drain và gate Cực gate điều khiển cho dòng điện chạy từ source qua drain hoặc ngược lại, tắt dòng điện chạy từ source qua drain Khi cổng gate được kích hoạt, transistor được mở (trạng thái on) và dòng điện chạy từ source qua drain Khi xem xét transistor độc lập, source và drain không có bất cứ khác nhau nào về mặt vật lý Hai cực này chỉ được phân biệt khi khi được gắn vào mạch điện bởi sự khác biệt mức điện áp
Có hai loại MOSFET là MOSFET kênh n và MOSFET kênh p cấu trúc vật lý của hai lọai MOSFET này được cho ở hình 3.1.1 (a) và (b) Tên gọi metal-oxide-semiconductor xuất phát từ ba lớp vật liệu tạo nên transistor
n có nghĩa cực âm (negative) và đại điện cho các electron trong khi p ó nghĩa cực dương (positive) và đại điện cho các lỗ trống chạy qua kênh channel trong vật liệu bán dẫn giữa cực source và drain Đối với transistor kênh n (hình 3.1.1 b), vật liệu bán dẫn loại p, được gọi là nền (substrate),
bị hai thanh tạp chất lọai n nhúng vào ở hai dầu cuối Hai vùng loại n này tạo thành cực source và drain của transistor Lớp bảo vệ cách ly được đặt lên trên hai vùng n và nền p trừ hai đường mở cho hai vùng n Cuối cùng, kim loại được đặt vào hai đường mở trong lớp oxide để tạo thành kết nối đến cực source và drain Một lớp kim loại khác được đặt lên trên lớp oxide giữa source và drain để tạo thành kết nối đến cực gate Cấu tạo của MOSFET kênh p (hình 3.1.1 b) cũng giống như MOSFET kênh n ngọai trừ chất nền là lọai n và hai thanh tạp chất là loại p
MOSFET kênh n và kênh p làm việc ngược với nhau Đối với MOSFET kênh n, chỉ có kênh n được tạo ra giữa source và drain dưới sự điều khiển của cực gate Kênh n này chỉ cho phép các electron tích điện âm di chuyển từ source đến drain Ngược lại, đối với MOSFET kênh p, chỉ có kênh p được tạo ra giữa source và drain dưới sự điều khiển của cực gate Kênh p này chỉ cho phép các lỗ trống tích điện dương di chuyển từ source đến drain
Trang 29Hình 3-1 : Cấu trúc vật lý của MOSFET : (a) kênh n, (b) kênh p
Trong kỹ thuật CMOS (complementory MOS), chì có hai loại transistor MOSFET được dùng là MOSFET kênh n (NMOS) và MOSFET kênh p (PMOS) Ký hiệu NMOS và PMOS cho ở hình 3.1.2 và 3.1.3
Trang 303.1.2 Cổng đảo
Cổng đảo là cổng logic cơ bản gồm một ngõ và và một ngõ ra Cổng đảo thực hiện đảo mức logic của ngõ vào Nếu ngõ vào là mức ‘0’, ngõ ra sẽ
có mức ‘1’, ngước lại, nếu ngõ vào mức ‘1’, ngõ ra sẽ là mức ‘0’
Hình 3-4 : Cổng NOT : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo
source
gate input
Trang 32Hình 3-7 : Bộ MUX 2-to-1 : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo
Hình 3-8 : Bộ shifter/rotator 4-bit : (a) ký hiệu logic, (b) bảng hoạt động, (c) cấu tạo
0 1 2 3
0 1 2 3
0 1 2 3
Trang 33Mạch logic tuần tự cũng giống với mạch logic tổ hợp ở chỗ cả hai cùng được tạo nên bởi các cổng logic cơ bản Điều khiến cho mạch logic tuần tự khác với mạch logic tổ hợp là ở cách kết nối các cổng logic với nhau Để cho mạch logic có thể nhớ giá trị hiện tại, nó cần được nối trực tiếp hoặc gián tiếp ngõ ra với ngõ vào Latch và Flip-Flop là hai phần tử cơ bản cho việc lưu giữ thộng tin Nó là trhành phần cơ sở cho tất cả mạch tuần tự Các thành phần khác thường thấy trong mạch tuần tự là thanh ghi (register) và máy trạng thái hữu hạn (finite state machine)
3.2.1 Bộ Latch
Một bộ Latch cơ bản lưu trữ một bit thông tin Giá trị ngã ra của bộ latch thay đổi tức thời với giá trị ngõ vào một khi tín hiệu cho phép tích cực Khi tín hiệu cho phép này không tích cực, dữ liệu ngõ ra bị chốt lại
Hình 3-9 (c) là cấu trúc của một D-Latch Khi tín hiệu enable E là ‘1’, Qnext = D, khi E là ‘0’, Qnext = Q
Hình 3-9 : Bộ D-Latch : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo
Q Q’
(a)
(b)
(c)
Trang 343.2.2 Flip-Flop
Flip-Flop cũng tương tự như Latch nhưng giá trị của nó thay đổi tại cạnh lên hoặc cạnh xuống của xung clock Hình 3-10 (c) trình bày cấu tạo của một D flip-flop từ hai bộ D-Latch
Hình 3-10 : Bộ D flip-flop : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo
3.2.3 Thanh ghi
Thanh ghi bao gồm hai hoặc nhiều hơncác D flip-flop được kết nối với nhau để cho tất cả họat động giống như nhau, được đồng bộ bởi cùng một xung clock và các tín hiệu enable Điều khác nhau là các flip-flip chứa các bit khác nhau của dữ liệu Hình 3-11 là một thanh ghi 4-bit
Hình 3-11 : Thanh ghi 4-bit : (a) ký hiệu logic, (b) bảng sự thật, (c) cấu tạo
Clear Load Hoạt động
Clk Clear
Q Q’
D E
Q Q’
D Clk
Q Q’
Trang 353.3 BỘ NHỚ
Bộ nhớ là thành phần lưu trữ dữ liệu trong các hệ thống Bộ nhớ được cấu tạo từ nhiều cell nhớ Giao diện bao gồm một đường địa chỉ để xác định các hàng cell nhớ, một đường dữ liệu hai chiều để lấy hoặc cất dữ liệu vào cell nhớ Hình 3.3.1
là một bộ nhớ 4x4 với các đường WR, CE, địa chỉ (A1, A0) và dữ liệu (D3, D2, D1, D0)
3.3.1 Bộ nhớ RAM
Bộ nhớ RAM (Random Access Memory) thường được dùng dể lưu trữ dữ liệu tạm thời trong lúc vận hành Nội dung bên trong RAM sẽ mất khi cắt nguồn cấp điện Hai loại bộ nhớ RAM cơ bản là Ram tĩnh (SRAM) và RAM động (DRAM)
3.3.2 Bộ nhớ ROM
Khác với RAM, ROM không mất dữ liệu khi cắt nguồn cấp điện nên bộ nhớ ROM (Read Only Memory) thường được dùng để lưu trữ chương trình hoặc dữ liệu cần lưu giữ Đa số các loại ROM hiện nay đều có khả năng ghi lại nhiều lần (EPROM)
Trang 363.4 KIẾN TRÚC VI XỬ LÝ
3.4.1 Kiến trúc cơ bản
Một bộ vi xử lý, thường còn được gọi là bộ xử lý trung tâm CPU (central
processing unit) Trong thiết kế CPU, thường phải xác định tập lệnh và cách thức
mà tập lệnh được mã hóa và thực thi Một CPU điển hình thường gồm hai phần
là đơn vị thực thi (excution unit) hay còn gọi là đường dữ liệu (datapath) và đơn
vị điều khiển (control unit) [19] Ngoài ra, còn có các phần tử nhớ đễ lưu trữ dữ
liệu trong lúc tính toán
Hình 3-13 : Khối chức năng cơ bản của một bộ vi xử lý
3.4.2 Tập lệnh
Vi xử lý họat động theo các lệnh mà người sử dụng gửi vào Các lệnh này được người thiết kế quy định và thiết kế vi xử lý để nó có thể thực hiện được Tập hợp các lệnh này gọi là tập lệnh
3.4.2.1 Định dạng lệnh
Để vi xử lý có thể xác định lệnh, các toán hạng cần thiết, các lệnh này phải theo một định dạng nhất định mà vi xử lý đã được thiết kế để nhận biết Định dạng thường thấy của lệnh như sau
Mã lệnh là phần yêu cầu thực hiện một chức năng cụ thể nào đó
Các toán hạng là các đối số của toán tử Thường là các địa chỉ chỉ đến một ô nhớ nào đó hoặc là các thanh ghi
Mã lệnh Toán hạng 1 Toán hạng 2 …
.
input input
output output
Control signal
Status signal
Trang 373.4.2.2 Các lọai mã lệnh
Các lệnh di chuyển dữ liệu
Các lệnh di chuyển dữ liệu thực hiện việc di chuyển dữ liệu giữa các đơn vị (các bộ nhớ hoặc các thanh ghi) Đa số là các lệnh chuyển dữ liệu giữa các thanh ghi Ví dụ như lệnh chép nội dung thanh ghi Acc vào thanh ghi R0 và ngược lại
Các lệnh toán học và logic
Các lệnh toán học và logic thực hiện các tính toán với dữ liệu Các phép toán cơ bản là cộng, trừ,nhân,chia, tăng, giảm Các phép tính logic là AND, OR, SHIFT, COMPARE, ROTATE, … Các phép toán này thường được thực hiện bởi bộ ALU
Các lệnh rẽ nhánh
Các lệnh rẽ nhánh thực hiện việc thay đổi vị trí lệnh thực thi Các lệnh của chương trình được lưu thành chuỗi tuần tự trong bộ nhớ chương trình và được thực thi tuần tự Khi một lệnh rẽ nhánh được gọi, việc thực thi sẽ nhảy đến một lệnh ở vị trí khác được chỉ ra bởi lệnh rẽ nhánh Các lệnh rẽ nhánh thường kết hợp với các cờ trạng thái để hình thành các vòng lặp hay các câu lệnh kiểm tra điều kiện
Các lệnh nhập/xuất
Các lệnh nhập/xuất được sử dụng để chuyển dữ liệu giữa máy tính và ngọai vi Lệnh nhập dùng để chuyển dữ liệu từ thiết bị nhập bế bộ xử lý Ví dụ lý tự từ bàn phím Lệnh xuất chuyển dữ liệu từ bộ xử lý ra thiết bị xuất Ví dụ như màn hình, máy in …
3.4.3 Các cơ chế định địa chỉ
Phần tử nhớ nội trong bộ vi xử lý thường là các thanh ghi được sử dụng
để tính toán, hỗ trợ hoặc nhớ dữ liệu tạm thời … nội dung các thanh ghi này sẽ bị mất khi mất điện Các dữ liệu input hoặc oputput thường vượt quá khả năng của các thanh ghi nội nên các bộ vi xử lý cần có khả năng giao tiếp với bộ nhớ ngoài Các đơn vị nhớ trong các bộ nhớ ngoài này được phân biệt nhau bởi địa chỉ Bộ vi xử lý chọn các đơn vị nhớ này bằng các đường địa chỉ Có một số cơ chế định địa chỉ cơ bản như sau
3.4.3.1 Định địa chỉ tức thời
Giá trị của toán hạng nằm trực tiếp trong chính câu lệnh, không chưa trong các ô nhớ Ví dụ như lệnh nạp giá trị 30H vào thanh ghi Acc Sử dụng phương pháp định địa chỉ này, có ưu điểm về
Trang 38nhớ Tuy nhiên, nếu cần phải thay đổi giá trị của toán hạng sẽ ảnh hưởng tới tất cả các câu lệnh khác cũng sử dụng toán hạng này, và có thể cần phải biên dịch lại toàn bộ chương trình
3.4.3.2 Định địa chỉ trực tiếp
Trong cơ chế định địa chỉ này, địa chỉ của ô nhớ chứa toán hạng nằm trong câu lệnh Phương pháp này linh động hơn hơn so với phương pháp định địa chỉ tức thời Tuy nhiên, để có được giá trị của tóan hạng , cần phải thêm tác vụ truy xuất bộ nhớ
Hình 3-14 : định địa chỉ trực tiếp
3.4.3.3 Định địa chỉ gián tiếp
Trong cơ chế định địa chỉ này, bản thân câu lệnh không chưa toán hạng hoặc địa chỉ của toán hạng mà chứa địa chỉ của ô nhớ (hoặc thanh ghi) chứa toán hạng Phương pháp này cung cấp khả năng linh động rất cao cho việc lập trình bởi khả năng quản lý theo kiểu con trỏ, nhưng để có được toán hạng, phải mất hai lần thực hiện truy xuất bộ nhớ
Hình 3-15 : định địa chỉ gián tiếp
Trang 39Hình 3-16 : định địa chỉ theo chỉ số
3.4.3.5 Định địa chỉ tương đối
Byte dữ liệu theo sau mã lệnh được cộng vào thanh ghi PC (Program counter) , phương pháp này sử dụng torng các lệnh nhảy tương đối
Hình 3-17 : định địa chỉ tương đối
Ngoài ra còn có một số phương pháp định địa chỉ khác như định địa chỉ tự tăng, định địa chỉ tự giảm …
3.4.4 Giao tiếp với bộ nhớ
Để vi xử lý có thể giao tiếp với bộ nhớ ngoài, vi xử lý cần có một giao diện giao tiếp với bộ nhớ bao gồm các đường địa chỉ, đường dữ liệu, đường lựa chọn thao tác đọc hoặc ghi W/R, … Đường địa chỉ dùng để xác định ô nhớ trong bộ nhớ, dữ liệu của ô nhớ được đọc ra bằng đường dữ liệu nếu chân W/R chỉ định thao tác là đọc Ngược lại, nếu chân W/R chỉ định thao tác ghi, dữ liệu được ghi vào ô nhớ thông qua đường dữ liệu
Bộ nhớ ngoài có thể bao gồm nhiều bộ nhớ vật lý chia sẻ cùng không gian địa chỉ Khi đó, cần thêm một mạch giải mã địa chỉ để xác định các bộ nhớ ngoài
Operation Value X
Operand memory
Operation Value X
Operand memory
Index register +
Trang 40Hình 3-18 : giao tiếp với bộ nhớ
Bên phía vi xử lý, địa chỉ thường được đặt trong thanh ghi đệm địa chỉ MAR, dữ liệu thường được đặt trong thanh ghi đệm dữ liệu MDR
Dữ liệu luân chuyển giữa các thanh ghi với bộ ALU có thể trên các bus được tổ chức theo các kiến trúc một bus (one-bus) , hai bus (two-bus) và
ba bus (three-bus) [19]
3.4.5.1 Kiến trúc one-bus
Trong kiến trúc one-bus, các thanh ghi và bộ ALU sử dụng một bus đơn cho việc di chuyển dữ liệu Vì một bus chỉ có thể mang một thông tin trong một chu kỳ clock nên hai toán hạng sẽ cần hai chu kỳ để nạp vào ALU.Kiến trúc bus kiểu này có giá thành
rẻ và đơn giản nhưng có hiệu suất thấp Hình 3.4.7 là một ví dụ