1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế bộ vi xử lý nhúng trên fpga ứng dụng trong kỹ thuật mạng neural

112 82 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 112
Dung lượng 1,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜ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 2

CÔ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 3

PHÒ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 4

LỜ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 5

ABSTRACT

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 6

TÓ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 7

DANH 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 8

Hì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 9

Hì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 10

DANH 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 11

MỤ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 12

3.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 13

5.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 14

5.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 16

CHƯƠ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 17

1.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 19

CHƯƠ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 20

Hì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 22

phứ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 23

vớ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 24

2.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 25

vớ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 27

giữ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 do

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 28

CHƯƠ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 29

Hì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 30

3.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 32

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

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 33

Mạ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 34

3.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 35

3.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 36

3.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 37

3.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 38

nhớ 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 39

Hì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 40

Hì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ụ

Ngày đăng: 13/02/2021, 08:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w