Phần 1: Thiết kế CPU RISCBài 1: Giới thiệu các thành phần của một hệ máy tính, hệ vi xử lý và nêu bật vai trò của kiến trúc tập lệnh á á ISA instruction set architecture khi thiết kế RIS
Trang 1Bài giảng
“Vi xử lý nâng cao” Vi xư ly nang cao
M õ á â h 40514003
Mã số môn học: 40514003
Biên soạn: Tống Văn On Bộ môn Kỹ thuật Điện tử – Khoa Điện & Điện tử
Trường Đại học Bách khoa TP Hồ Chí Minh
Trang 2Nội dung bài giảng
Bài giảng này được biên soạn từ các tài
liệu sau:
1 Bài giảng điện tử của Porf D Patterson,
M.Irwin, Yu-Liang Wu (David) – 2007.
2 Bài giảng điện tử của Intel Corporation –
2006.
3 Bài giảng điện tử của Philip Leong – 2006
3 Bai giang điện tư cua Philip Leong 2006.
4 Website của các bài giảng điện tử trên:
- http://www.cse.cuhk.edu.hk
- http://www.intel.com
- http://www.ece.uah.edu p
Trang 3Nội dung bài giảng
Nội dung môn học “Vi xử lý nâng cao” là khảo sát
các chip nhúng ARM, AVR và PIC.p g ,
Phần lõi của các chip này là CPU RISC 16/32-bit
Học viên cao học sẽ thực hiện các tiểu luận về ARM, AVR và PIC
DO VẬY
Nội dung bài giảng tập trung vào việc giới thiệu
Nội dung bai giang tập trung vao việc giơi thiệu
kiến trúc và thiết kế CPU RISC 32-bit cũng như hệ
vi xử lý dựa trên CPU RISC
Giới thiệu những vấn đề chính của các chip ARM,
AVR và PIC, học viên cao học sẽ nghiên cứu chi tiết thông qua tiểu luận
thong qua tieu luận
Trang 4Tổng quát
Nội dung bài giảng bao gồm 4 phần:
Phần 2 : Các hướng dẫn & bài tập (9
hướ d ã & b øi t ä ) hương dan & bai tập).
Phần 3 : Giới thiệu ARM (4 bài).
Phần 4 : Tiểu luận (mỗi học viên 1 đề tài).
Trang 5Phần 1: Thiết kế CPU RISC
Bài 1: Giới thiệu các thành phần của một hệ máy tính, hệ vi xử lý và nêu bật vai trò của kiến trúc tập lệnh
á á
ISA (instruction set architecture) khi thiết kế RISC
Bài 2: Nguyên tắc thiết kế ISA, tập thanh ghi, bộ nhớ, khuôn dang lệnh tổng quát, các chế độ định địa chỉ -ï g ä g q , ä ị ịMô tả các lệnh load/store, tính toán (dạng lệnh, C,
hợp ngữ và mã máy)
Bài 3: Mô tả các lệnh rẽ nhánh và thay đổi luồng điều
Bai 3: Mo ta cac lệnh re nhanh va thay đoi luong đieu khiển chương trình (dạng lệnh, C, hợp ngữ và mã
máy)
Bài 4 Th û t c stack à cấp phát bộ nhớ
Bai 4: Thu tục, stack va cap phat bộ nhơ
Bài 5: Trình dịch hợp ngữ, liên kết và nạp
Bài 6: Thiết kế đơn vị số học – logic và dịch bit Ỉị ï g ị
Trang 6Phần 1: Thiết kế CPU RISC
Bài 7: Hiệu suất và đánh giá ISA
Bài 8: Đường dữ liệu đơn chu kỳ của MIPS Các bước
Bai 8: Đương dư liệu đơn chu ky cua MIPS Cac bươc
thiết kế đường dữ liệu
Bài 9: Đơn vị điều khiển đường dữ liệu đơn chu kỳ Các
á á
bước thiết kế
Bài 10: Đường dữ liệu đa chu kỳ – Các bước thiết kế,
hệ thống clock vi mã vi lập trình chuyển điều
hệ thong clock, vi ma, vi lập trình, chuyen đieu
Trang 7Phần 1: Thiết kế CPU RISC
Bài 13: Hệ thống thứ bậc bộ nhớ – Bộ nhớ RAM động, RAM tĩnh, cache, bộ nhớ thứ cấp Các kiểu cache, , , ä p ,
vấn đề cache miss, cache hit
Bài 14: Hệ thống I/O – Vấn đề ngắt của ngoại vi – Bus
ø t h h á b
và tranh chấp bus
Trang 8Phần 2: Các hướng dẫn
Hướng dẫn 1: Giới thiệu SPIM và thực hiện một vài
thủ tuc đơn giản
thu tục đơn gian
Hướng dẫn 2: Ôn tập VHDL
Hướng dẫn 3g : Trì hoãn – Chi phí – Hiệu suất của CPU.p ä
Hướng dẫn 4: Thiết kế mạch cộng thấy trước số nhớ
Hướng dẫn 5: CPU đơn chu kỳ và ModelSim
Hướng dẫn 6: Kỹ thuật đường ống
Hướng dẫn 7: Thiết kế mạch nhân/chia
H ù d ã 8 Thi át k á CPU đ h k ø
Hướng dẫn 8: Thiết kế CPU đơn chu kỳ
Hướng dẫn 9: Bộ nhớ và cache
Trang 9Phần 3: Giới thiệu ARM
Bài 15: Kiến trúc ARM – Mô hình đối với người lập
trình (dữ liệu, dang lệnh, tập thanh ghi, xử lý ngoai ( ä , ï g ä , äp g , y g ïlệ, phát triển), tập lệnh, thiết kế hệ thống và các
công cụ phát triển
B øi 16 Hơ ữ ø C û I t l X l V á đ à bi â
Bài 16: Hợp ngư và C của Intel Xscale – Vấn đề biên
dịch thông qua các thí dụ
Bài 17: Ngoai lệ và các ngắt mềm.g ï ä g
Bài 18: Kiến trúc bộ nhớ, I/O và hệ thống bus của máy tính ARM
Trang 10Phần 4: Tiểu luận
Các học viên sẽ nhận đề tài tiểu luận vào tuần thứ 2
của hoc kỳ Các đề tài liên quan đến:ï y q
1 Chip ARM
2 Chip AVR
3 Chip PIC
Nộp tiểu luận: tiểu luận (50% điểm) được nộp vào ngày
thi viết (50% điểm)
Trang 11Tài liệu tham khảo
hướng dẫn & bài tập:
1 Computer Organization and Design
1 Computer Organization and Design,
3rdEdition Patterson & Hennessy., ©2005.
2 Structured Computer Organization,
5 Edition Andrew S Tanenbaum., ©2006.
Trang 12Tài liệu tham khảo
II Tài liệu tham khảo ngôn ngữ mô tả phần
cứng HDL:
1 ASIC lập trình được – Tong Van On.
2 Thiet ke mạch so vơi VHDL & Verilog
– Tống Văn On.
Trang 13Tài liệu tham khảo
1 Sách chỉ dẫn trình dịch hơp ngữ
1 Sach chỉ dan trình dịch hợp ngư (Assembler Guide)
2 Sách chỉ dẫn CodeWarrior IDE (CodeWarrior IDE Guide).
3 Sách tham khảo kiến trúc ARM (ARM
Architecture Reference Manual).
4 Bộ tài liệu của người phát triển ARM:
Bắt đầu (ARM Developer Suite: Getting
Bat đau (ARM Developer Suite: Getting
Started).
Trang 14Tài liệu tham khảo
6 AVR32 Architecture Document – Atmel.
7 AVR32 AP Technical Reference
7 AVR32 AP Technical Reference Manual – Atmel.
8 AVR32 32-bit microcontroller –
8 AVR32 32 bit microcontroller Preliminary – Atmel.
9 AVR32 32-bit microcontroller – Java Technical Reference – Atmel.
10 PIC Family Data Sheet – Microchip.
11 ARM Family Data Sheet – Intel.
12 Các website: www.atmel.com, www microchip com www intel com www.microchip.com, www.intel.com
Trang 15B øi i û “Vi ử l ù â ”
Bài giảng “Vi xử lý nâng cao”
Phần 1: Thiết kế CPU RISC
Bài 01: Mở đầu
Trang 16Nội dung mơn học
Giới thiệu các thành phần chính của một hệ máy
tính, cách thức những thành phần này cùng nhau g p y g
hoạt động để thực thi chương trình
z Lập trình hợp ngữ cho MIPS.
Gi ùi thi ä i ä thi át k á đ ø d õ li ä ø đ ị
Giới thiệu việc thiết kế đường dữ liệu và đơn vị
điều khiển của CPU
z Mô phỏng thiết kế (VHDL hoặc Verilog) p g ( ë g)
Mục tiêu: Nghiên cứu các mô hình tổ chức để xác
định khả năng và hiệu suất của các hệ máy tính
Môn học tiên quyết:
z Vi xử lý.
z Ky thuật số.
Trang 17Những kiến thức cần có
Cách thức viết, biên dịch và chạy các chương trình bằng một ngôn ngữ cấp cao (C, C++, Java, …)
Cách thức tạo, tổ chức và sửa đổi các tập tin (file),
và chạy những chương trình trên hệ điều hành
Cách thức biểu diễn và quản lý các số dương và
âm ở dạng nhị phân (bù-2, dấu-biên độ, v.v…)
Thiết kế mach logic
Thiet ke mạch logic
z Cách thức thiết kế các thành phần tổ hợp và tuần tự (đại số logic, tối thiểu hóa hàm logic, ánh xạ công nghệ,
mach giải mã và ghép kênh mach chốt và flipflop thanh
mạch giai ma va ghep kenh, mạch chot va flipflop, thanh ghi, máy trạng thái hữu hạn Mealy và Moore, gán trạng
thái và tối thiểu hóa, v.v…).
z Kien thưc cơ ban ve vi xư ly.
z Kiến thức cơ bản về VHDL hoặc Verilog.
Trang 18Sự phát triển của phần cứng máy tính
z Những mạch điện tử ngày nay đã bắt đầu bằng
phát minh transistor lưỡng cực của Bardeen và
những người khác vào năm 1947 ở Bell
Laboratories
Trang 19Sự phát triển của phần cứng máy tính
được phát minh khi nào?
z Vào năm 1958 IC đầ tiên ra đời khi Jack
z Vao nam 1958, IC đau tien ra đơi khi Jack
Kilby ở Texas Instruments kết nối thành công
bằng thủ công vài transistor, điện trở và tụ
điện trên một đế (substrate) đơn
Trang 20Các công nghệ cơ bản
à
Điều gì sẽ xảy ra nếu công nghệ trong
công nghiệp vận tải phát triển theo
ø g t á đ ä?
cung toc độ?
Trang 21Những ảnh hưởng của phát triển công nghệ
Bộ xử lý
z Dung lượng logic: tăng khoảng 30% mỗi năm
z Hiệ s ất: 2x mỗi 1 5 năm
Bộ nhớ
z Dung lượng DRAM: 4x mỗi 3 năm, khoảng 60%
mỗi năm
z Tốc độ bộ nhớ: 1.5x mỗi 10 năm
z Giá mỗi bit: giảm khoảng 20% mỗi năm.g g
Đĩa
z Dung lượng: tăng khoảng 60% mỗi năm
Trang 22Qui luật Moore cho CPU và DRAM
Từ : “Facing the Hot Chips Challenge Again”, Bill Holt, Intel, được giới thiệu ở Hot Chips 17,
Trang 23Nỗ lực chính: việc định tỉ lệ linh kiện
Từ : “Facing the Hot Chips Challenge Again”, Bill Holt, Intel, được giới thiệu ở Hot Chips 17, 2005.
Trang 24Nỗ lực phụ: kích thước của wafer.
Từ : “Facing the Hot Chips
Challenge Again”, Bill Holt, Intel,
được giới thiệu ở Hot Chips
Trang 25Trình độ phát triển: cell bộ xử lý.
Fclock > 4 GHz.
Băng thông bộ nhớ: 25.6 GBytes mỗi giây.
Băng thông IO: 76.8 GBytes mỗi giây.
Hiệu suất:
z 256 GFLOPS (chính xác đơn ở 4 GHz).
z 256 GOPS (số nguyên ở 4 GHz).
z 25 GFLOPS (chính xác kép ở 4 GHz)
z 25 GFLOPS (chính xac kep ơ 4 GHz).
235 mm vuông.
235 triệu transistor.
Tiêu thụ công suất ước tính được: 60 - 80 W @ 4GHz
Trang 26Máy tính
Có các loại máy tính khác không?
Trang 27Máy tính nhúng trong xe ô tô
Trang 28Sự tăng trưởng nhu cầu máy tính nhúng
Trang 29Máy tính là gì?
Các thành phần:
z Bộ xử lý (đường dữ liệu, đơn vị điều khiển).
z Thiết bị nhập (chuột bàn phím v v )
z Thiet bị nhập (chuột, ban phím, v.v…).
z Thiết bị xuất (màn hình, máy in, v.v…).
z Bộ nhớ (cache (SRAM)), bộ nhớ chính (DRAM), ổ đĩa,
z Đươc thưc hiện bằng cách sử dung hàng triệu transistor ï ï ä g ï g g ä
z Không thể hiểu bằng cách xem xét từng transistor.
z Ta cần sự trừu tượng Ỉ ngôn ngữ mô tả phần cứng HDL.
Trang 30Các thành phần chính của một máy tính
Trang 31Các thành phần chính của một máy tính
Một máy tính có thể được chia thành 5 phần:
1 Các thiết bị nhập (input devices) mang dữ liệu từ thế giới bên ngoài vào trong máy tính goa vao t o g ay t
2 Dữ liệu này được giữ trong bộ nhớ của máy tính cho đến khi
3 Đường dữ liệu (datapath) yêu cầu và xử lý chúng.
5 Đưa dữ liệu trở ra thế giới bên ngoài là công việc của các thiết
bị xuất (output devices) ị p
Phương pháp phổ biến nhất để kết nối 5 thành phần trên với nhau là sử dụng mạng các bus.
Muc tiêu thiết kế workstation : 25% chi phí cho bộ xử lý 25%
Mục tieu thiet ke workstation : 25% chi phí cho bộ xư ly, 25%
chi phí cho bộ nhớ (kích thước bộ nhớ tối thiểu), phần còn lại cho các thiết bị I/O, nguồn cấp điện, vỏ hộp.
Trang 32Bên dưới chương trình
Chương trình ngôn ngữ cấp cao (C)
Chương trình ngon ngư cap cao (C)
swap (int v[], int k) (int temp;
Chương trình hơp ngữ (cho MIPS)
Chương trình hợp ngư (cho MIPS)
Trang 33Bên dưới chương trình
Chương trình ngôn ngữ cấp cao (C)
Chương trình ngon ngư cap cao (C)
swap (int v[], int k) (int temp;
Một lệnh của C được dịch thành nhiều lệnh của hợp ngữ.
Một lệnh của hợp ngữ tương ứng với một lệnh của mã máy.
Trang 34Lợi ích của ngôn ngữ cấp cao?
Ngôn ngữ cấp cao
z Cho phép người lập trình nghĩ về ngôn ngữ tự nhiên hơn và về công dụng được mong đợi của ngôn ngữ (Fortran cho
tính toán khoa học, Cobol cho lập trình thương mại, Lisp
cho việc quản lý biểu tượng, Java cho lập trình web, …).
z Cải thiện năng suất người lập trình – mã dễ hiểu hơn sẽ
dễ gỡ lỗi và thẩm tra hơn
de gơ loi va tham tra hơn.
z Cải thiện tính dễ bảo trì của chương trình.
z Cho phép các chương trình độc lập với máy tính mà trên
đó chúng đươc phát triển (các trình biên dịch và trình
đo chung được phat trien (cac trình bien dịch va trình
dịch hợp ngữ có thể dịch những chương trình ngôn ngữ
cấp cao thành các lệnh nhị phân của bất kỳ máy nào).
z Sư nổi bật của các “trình biên dịch tối ưu hóa”: tao ra mã
Kết quả là, việc lập trình ngày nay ít khi được
z Sự noi bật cua cac trình bien dịch toi ưu hoa : tạo ra ma hợp ngữ rất hiệu quả, được tối ưu hóa cho máy đích.
thực hiện ở mức hợp ngữ
Trang 35Tổ chức máy tính
Khả năng và đặc tính hiệu suất của các đơn vị chức năng chính (functional unit (FU))
z e.g., tập thanh ghi, ALU, mạch ghep kenh, bộ nhơ,
Cách thức các đơn vị chức
năng này đươc kết nối
z e.g., các bus.
Mạch logic và phương tiện
qua đó luồng thông tin giữa
các FU được điều khiển
Kiến trúc tập lệnh (Instruction Set Architecture (ISA))
Mô tả máy tính ở mức truyền thanh ghi (Register
T f L l (RTL))
Transfer Level (RTL))
Trang 36Nhu caàu cuûa ISA
Trang 37Các thành phần chính của máy tính
Các thiết bị Bộ nhớ
Trang 38Bên dưới chương trình
Chương trình ngôn ngữ cấp cao (C)
C compiler
Chương trình ngon ngư cap cao (C)
swap (int v[], int k)
.
Chương trình hơp ngữ (cho MIPS)
Chương trình hợp ngư (cho MIPS)
Trang 39Bên dưới chương trình
Chương trình ngôn ngữ cấp cao (C)
C compiler
Chương trình ngon ngư cap cao (C)
swap (int v[], int k)
.
Chương trình hơp ngữ (cho MIPS)
Chương trình hợp ngư (cho MIPS)
Trang 40Thiết bị nhập “nhập” mã đối tượng
Datapath Output
1 Các thiết bị nhập mang mã đối tương và dữ liệu
1 Cac thiet bị nhập mang ma đoi tượng va dư liệu
đầu vào từ thế giới bên ngoài vào trong máy tính.
Trang 41Lưu mã đối tượng vào bộ nhớ
Datapath
101011 00010 01111 0000000000000100
000000 11111 00000 0000000000001000
Output
2 Các mã đối tượng và dữ liệu này được lưu giữ trong
bộ nhớ máy tính cho đến khi
Trang 42Bộ xử lý tìm nạp lệnh
Bộ xử lý tìm nạp lệnh từ bộ nhớ
Datapath
101011 00010 01111 0000000000000100
000000 11111 00000 0000000000001000
Output
3 Bộ xử lý yêu cầu và xử lý chúng
3 Bộ xư ly yeu cau va xư ly chung.
Trang 43Đơn vị điều khiển giải mã lệnh
Đơn vị điều khiển giải mã để xác định điều
Trang 44Đường dữ liệu thực thi lệnh
Đường dữ liệu thực thi lệnh dưới sự hướng
dẫn của đơn vị điều khiển
contents Reg #4 ADD contents Reg #2
4 Hoạt động của đường dữ liệu được điều khiển bởi ï ä g g ä ï
đơn vị điều khiển của bộ xử lý.
Trang 45Tiếp theo, điều gì xảy ra?
Trang 46Tiếp theo, điều gì xảy ra?
Decode
Thực thi
Trang 47Bộ xử lý tìm nạp lệnh kế tiếp
Bộ xử lý tìm nạp lệnh kế tiếp từ bộ nhớ
Trang 48Tổ chức của bộ xử lý
Đơn vị điều khiển cần có để
Đường dữ liệu cần có để
Đương dư liệu can co đe
Trang 49Tổ chức của bộ xử lý
Đ ị đi à khi å
Đơn vị điều khiển:
z Quyết định lệnh nào là lệnh tiếp theo và nhập lệnh này từ bộ nhớ.
z Giải mã lệnh.
z Phân phát các tín hiệu “điều khiển cách thức” mà thông tin luân chuyển giữa những thành phần của đường dữ liệu.
z Điều khiển những thao tác mà các đơn vị chức năng của đường dữ liệu thực hiện.
z Nap dữ liệu từ bộ nhớ và lưu dữ liệu vào bộ nhớ.
Đường dữ liệu nạp dữ liệu từ ô nhớ nào và lưu dữ liệu vào ô nhớ nào?
z Nạp dư liệu tư bộ nhơ va lưu dư liệu vao bộ nhơ.
Trang 50Dữ liệu xuất được lưu trong bộ nhớ
Vào lúc hoàn tất chương trình, dữ liệu xuất
được lưu vào trong bộ nhớ
Control
Input Network
Datapath 0000010001010000000000000000000000000000010011110000000000000100
00000011111000000000000000001000
Output
5 Dữ liệu cần xuất đươc lưu trong bộ nhớ của máy tính
5 Dư liệu can xuat được lưu trong bộ nhơ cua may tính
cho đến khi
Trang 51Thiết bị xuất “xuất” dữ liệu
Thiết bị xuất “xuất” dữ liệu trong bộ nhớ
ra môi trường bên ngoài.
Control Memory
Input Network
Datapath Output
00000100010100000000000000000000 00000000010011110000000000000100 00000011111000000000000000001000
Trang 52Kiến trúc tập lệnh (ISA)
Trang 53ISA của MIPS
C ù l i l h
Các loại lệnh
z Nạp/lưu bộ nhớ (Load/Store)
Registers
z Nhảy và rẽ nhánh (Jump and Branch)
z Dấu chấm động (Floating Point)
- Bộ đồng xử lý.
z Đặc biệt (Special)
PC HI LO
z Đặc biệt (Special)
3 khuôn dạng lệnh: tất cả đều rộng 32-bit.
OP OP OP
Trang 54Các mảng phù hợp với nhau ra sao?
Operating System Applications
I/O system Processor
Kết hợp nhiều mức trừu tượng.
Chịu một tập các tác động thay đổi nhanh.
Thi át k á đ đ ø đ ù h i ù
Thiết kế, đo đạc và đánh giá
Trang 55Các mảng phù hợp với nhau ra sao?
Operating System Applications
I/O system Processor
Compiler
y Firmware
Kiến trúc tập
Lệnh ISA y Processor y
system
Datapath & Control Digital Design Circuit Design
Kết hợp nhiều mức trừu tượng.
Chịu một tập các tác động thay đổi nhanh.
Thi át k á đ đ ø đ ù h i ù
Thiết kế, đo đạc và đánh giá
Trang 56Bài giảng “Vi xử lý nâng cao”
Phần 1: Thiết kế CPU RISC
Trang 57Nhắc lại: chu kỳ thực thi lệnh
Đường dữ liệu thực thi các lệnh dưới sự
hướng dẫn của đơn vị điều khiển.
Datapath
contents Reg #4 ADD contents Reg #2
Bộ nhớ lưu giữ cả hai: lệnh và dữ
liệu.